2013-03-14 5 views
-2

저는 몇 주 동안 Ruby on Rails를 공부 중이며 일부 자습서와 작은 기사를 따라 공부하고 있습니다. 프로젝트 구조에 대한 고차원적인 개요가있는 기사 또는 비디오 자습서를 추천 할 수 있습니다. 프로젝트 구조는 서로 연결되어 웹 응용 프로그램을 형성하는 방식 (모델, 뷰, 컨트롤러, 자산 등)을 다루고 있습니까? 기본 사항을 이해하지 못하는 세부 사항에 깊이 빠져 있다고 생각합니다.Ruby on Rails 프로젝트 구조

+3

초보자를위한 http://ruby.railstutorial.org/ruby-on-rails-tutorialbook을 권합니다. – codeit

+0

[stackoverflow faq] (http://stackoverflow.com/faq)를 읽어보십시오. –

+0

이 간단한 링크를 사용해보세요 ... http://www.tutorialspoint.com/ruby-on-rails/rails-directory-structure.htm –

답변

3

30.000 피트 개요 레일 마법 같은 많은 점이다 :)

이 당신이 알아야 주위에 규칙이 많이 있지만 그들은 모든 꽤 단정하고 간단한.

첫 번째 꺼짐 : Rails 애플리케이션에서 아무 것도 연결할 필요가 없습니다. 레일스는 규칙을 통해 이러한 작업을 수행합니다.

먼저 폴더 구조를 찾습니다.

앱은 /app 디렉토리에 있으며 설정은 /config입니다. /db 등의 데이터베이스 파일 및 마이 그 레이션 /public은 레일에 의해 관리되지 않는 모든 항목 (robots.txt, 정적 컨텐츠 등)입니다. /app 내부

당신은 일반적으로해야합니다 : 응용 프로그램에 대한 자바 스크립트, CSS 및 이미지 파일이 어디로

app 
- assets 
- controllers 
- models 
- views 

자산입니다.

컨트롤러은 컨트롤러를 넣는 곳입니다. 여기에서 규칙은 다음과 같습니다.

ApplicationControllerActionController::Base에서 파생되었으며 모든 응용 프로그램의 컨트롤러에 대한 기본 클래스로 사용됩니다. 컨트롤러 이름이 클래스 이름과 일치하면 컨트롤러가 즉시로드됩니다. 따라서 ApplicationControllerapplication_controller.rb 안에 선언 될 것으로 예상됩니다. posts_controller.rb 파일로 들어가는 또 다른 샘플은 PostsController입니다.

여기 규칙은 많은 것들을 관리하는 컨트롤러 (게시물, 클라이언트, 링크)입니다.)는 복수형 인 반면에 프로파일, 계좌와 같은 단일 자원은 단수형이지만 실제 강경 한 규칙은 아닙니다. Postpost.rb로 전환, Useruser.rb로 전환 :

모델는 액티브 모델이 어디로, 그들이 ActiveRecord::Base을 확장 간단한 클래스로 정의하고 그 클래스 이름과 동일한 파일로 이동하는 것입니다.

보기은 컨트롤러별로 하위 폴더가 포함되어있어 조금 특별합니다. PostsControllerCommentsController이있는 경우 /views : postscomments 안에 두 개의 폴더가 있습니다.

이러한보기 폴더 안에는 컨트롤러 내부의 작업 (방법)에 해당하는 파일을 넣을 수 있습니다. 컨트롤러의 index 메서드가 호출 될 때 렌더링 될 파일은 일반적으로 index.html.erb입니다.

마술이 일어나는 곳에서 알 수 있듯이, 레일스는 올바른 방법으로 이름을 지정해야하며, 레일스는 자신의 것으로 판단합니다. 작동시키기 위해 명시 적으로해야하는 유일한 특별한 경우는 라우팅입니다.

라우팅/config/routes.rb으로 들어가며,이 파일은 Rails 애플리케이션에 컨트롤러의 어떤 동작에 URL이 매핑되는지 알려주기 위해 사용됩니다. 그러나 레일스 가이드 나 다른 사람들이이 질문에 게시 한 수많은 자습서에서 살펴 보시기 바랍니다.

+0

나쁜 것은 마술은 사람들이 설명 할 수없는 것입니다. =) 프로젝트 구조에 대한 좋은 개요, 감사합니다. 나는 그 일이 RoR에서 어떻게 이루어질 지 이해하기 위해서는 연습이 필요하다고 생각합니다. – twist900