2012-02-02 3 views
5

Michael Hartl의 저서에서 Ruby on Rails를 배우고 있습니다. 나는이 글쓰기를 구조화되고 명확하게 즐긴다. 그럼에도 불구하고, 나는 레일 3.0과 3.3 장 차이에 대한 질문이와 레일 3.2 버전 :Michael Hartl의 Rails 3.0과 Rails 3.2의 차이점

  • PagesControllerStaticPagesController
  • @Title 더 이상 컨트롤러에서 초기화되지 않은이된다, 그러나 각 페이지에
  • @Title 변수는 "제공"함수를 통해 초기화되고 단순히 삽입하는 대신 "yield"함수를 통해 사용됩니다. <%= @title %>

r은 RoR 개발의 업데이트 된 모범 사례입니까?

+0

또한이 자습서를 수행 할 때 제공 기능을 사용하는 것과 혼동합니다. – zsljulius

답변

16

는 PagesController는 이유가없는 StaticPagesController

을하게된다. PagesController가 좋습니다. 그는 명확성 이유 (?)를 위해 그렇게했을 것입니다.

@title은 더 이상 컨트롤러 초기화하지만, 각 페이지

에서이 우수 사례/컨벤션 이유입니다하지 않습니다. @title 변수를 단순히 삽입하는 대신 "수율"기능을 통해 "제공"기능을 통해 초기화 및 사용 Where does the meta content live in the MVC?

이 질문에 대한 대답에서 봐 주시기 바랍니다 <퍼센트 = @title %>

위와 같은 대답.

제목과 같은 메타 컨텐트가보기에 속해 있다고 생각하는 사람들이 있으므로 컨트롤러가 아닌보기에서 설정해야합니다. providecontent_for 사이

실제적인 차이는 물론 여기에 설명되어 있습니다 http://api.rubyonrails.org/classes/ActionController/Streaming.html#module-ActionController::Streaming-label-Communication+between+layout+and+template

참고 이러한 변경 (레일 3.1 stream 함께 소개했다 provide 제외) 3.2 레일에 국한되지 않는 것이다.

관련 문제