迈克尔哈特尔的书Rails 3.0和Rails 3.2之间的差异

use*_*081 5 ruby-on-rails railstutorial.org

我正在从Michael Hartl的书中学习Ruby on Rails.我非常喜欢这种写作,结构清晰.不过,我对Rails 3.0和Rails 3.2版本之间的第3.3章差异有疑问:

  • PagesController成为StaticPagesController
  • @Title 不再在控制器中初始化,而是在每个页面中
  • @Title变量是通过"提供"的功能初始化,并且通过"产量"函数,而不是简单地插入用于<%= @title %>

是出于培训原因,还是RoR开发的最新最佳实践?

Dam*_*ien 16

PagesController成为StaticPagesController

没有理由.PagesController很好.他这样做可能是出于清晰的原因(?).

@Title不再在控制器中初始化,而是在每个页面中

这是出于最佳实践/惯例的原因.请看一下这个问题的答案.元内容在MVC中的位置是什么?

@Title变量通过"提供"函数初始化,并通过"yield"函数使用,而不是简单地插入<%= @title%>

与上述答案相同.

有些人认为标题之类的元内容属于视图,因此应该在视图中设置,而不是在控制器中.

这里的实际差异在这里得到了很好的解释:http://api.rubyonrails.org/classes/ActionController/Streaming.html#module-ActionController :: Streaming-label-Communication+ between provide+ layout+ and+ templatecontent_for

请注意,这些更改并非特定于Rails 3.2(除了在Rails 3.1中provide引入的更改stream).