6

Rails 3.0的发行说明包括此更改:

7.4.2 带块的助手

form_for喜欢或div_for从块中插入内容的助手<%=现在使用:

<%= form_for @post do |f| %>
   ...
<% end %>

您自己的此类助手应返回一个字符串,而不是手动附加到输出缓冲区。

做其他事情的助手,比如cacheor content_for,不受这种变化的影响,他们<%像以前一样需要。

我们正在将一个 Web 应用程序从 Rails 2.3.18 迁移到 Rails 3.1.12,拥有一个已更改的此类帮助程序的完整列表非常有用,这样我们就可以检查它们在我们的源代码,但我无法找到此类权威列表。

我尝试过查看rails 项目的 git 历史记录,但似乎有许多带有相关更改的提交,并且它们显然没有分组在特定的分支上。例如,这个列表包括:

  • form_for
  • form_tag
  • fields_for
  • field_set_tag

...从7b622786f

  • link_to

...在e98474096中提到,并且:

  • div_for
  • content_tag_for

...在e8d2f48cff中提到

  • remote_form_for

.... 在0982db91f中提到过,尽管它已在 Rails 3 中删除。

但是,我确定这并不完整——谁能提供完整的清单?

4

2 回答 2

1

我没有完整的列表,但我认为您可以通过查看UrlHelperand文档中的差异来得出大部分变化FormHelper。这些助手中的大多数方法都更改为新语法。

http://apidock.com/rails/v2.3.8/ActionView/Helpers/UrlHelper/link_to http://apidock.com/rails/v2.3.8/ActionView/Helpers/FormHelper/form_for

于 2013-05-10T15:01:45.593 回答
0

rails_upgrade 插件中有一个这些方法的列表,其目的是检查您的应用程序是否存在从 Rails 2 升级到 Rails 3 的问题。相关的方法是check_old_helpers,它检查包含以下任何内容的块助手:

  • content_tag
  • javascript_tag
  • form_for
  • form_tag
  • fields_for
  • field_set_tag

至于这有多权威,这个插件是一个官方的 Rails 项目插件,虽然它确实错过了我通过搜索 git 历史找到的一对:

  • div_for
  • remote_form_for
  • link_to

但是,如果检查这些帮助程序的官方工具缺少一些,也许这是我可能找到的最好的列表。另一点是升级检查工具提到如果你错过一些应该有弃用警告,这提供了额外的检查:

使用 concat(例如 form_for)的块助手应该使用 <%= 而不是 <%。当前的表单将继续有效,但您会收到弃用警告,因为此表单将来会消失。

于 2013-06-01T08:17:09.097 回答