【问题标题】:Michael Hartl's book differencies between Rails 3.0 and Rails 3.2Michael Hartl 的书 Rails 3.0 和 Rails 3.2 的区别
【发布时间】:2012-02-25 02:44:07
【问题描述】:

我正在从 Michael Hartl 的书中学习 Ruby on Rails。我真的很喜欢这篇文章,结构清晰,结构清晰。不过,我对第 3.3 章 Rails 3.0 和 Rails 3.2 版本之间的区别有疑问:

  • PagesController 变为 StaticPagesController
  • @Title 不再在控制器中初始化,而是在每个页面中
  • @Title 变量通过“provide”函数初始化,并通过“yield”函数使用,而不是简单地插入<%= @title %>

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

【问题讨论】:

  • 在学习本教程时,我也对提供功能的使用感到困惑。

标签: ruby-on-rails railstutorial.org


【解决方案1】:

PagesController 变成了 StaticPagesController

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

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

这是出于最佳实践/惯例的原因。请看一下这个问题的答案Where does the meta content live in the MVC?

@Title 变量通过“provide”函数初始化,并通过“yield”函数使用,而不是简单地插入

与上面的答案相同。

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

providecontent_for 之间的实际区别在这里得到了很好的解释:http://api.rubyonrails.org/classes/ActionController/Streaming.html#module-ActionController::Streaming-label-Communication+between+layout+and+template

请注意,这些更改并非特定于 Rails 3.2(Rails 3.1 中与 stream 一起引入的 provide 除外)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-11
    相关资源
    最近更新 更多