2013-05-02 3 views
5

release notes for Rails 3.0 включают это изменение:Точно, какие помощники блока содержимого вносили изменения в Rails 3?

7.4.2 Помощники с блоками

Помощников как form_for или div_for, которые вставляют содержимое с использованием блока <%= теперь:

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

Ваш собственный ожидается, что помощники такого типа вернут строку, а не добавят ее в буфер вывода вручную.

Помощники, которые делают что-то еще, например cache или content_for, не изменяются при этом изменении, им необходимо <%, как и раньше.

Мы осуществляем миграцию веб-приложения из Rails 2.3.18 в Rails 3.1.12, и было бы очень полезно иметь полный список таких помощников, которые изменились, чтобы мы могли проверьте все их вхождения в нашем исходном коде, но мне трудно найти такой авторитетный список.

Я попытался просмотреть историю git rails project, но, похоже, у меня много коммитов со связанными изменениями, и они явно не сгруппированы по определенной ветви. Например, это, кажется, ясно, что этот список включает в себя:

  • 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.

Однако, я уверен, что это не полный - кто может предоставить полный список?

+1

[Упрощение помощников блока рельсов по Иегуде Кац] (http://yehudakatz.com/2009/08/31/simplifying-rails-block-helpers-with-a-side-of-rubinius/) содержит некоторые информацию о причинах принятия решения и подробностях о реализации на низком уровне. Он может дать некоторые подсказки о том, где искать ответ, к сожалению, он не содержит полного списка, в котором помощники менялись. –

ответ

1

У меня нет полного списка, но я думаю, что вы можете получить большую часть того, что изменилось, если посмотреть на разницу в документации UrlHelper и 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

+0

Спасибо за ваш ответ - это полезно, но это точно не отвечает на мой вопрос, как вас спрашивают, как вы признаете, поскольку я ищу полный и авторитетный (или, по крайней мере, тщательно обоснованный) список откуда-то/кого-то, а не указание «большая часть того, что изменилось». –

0

Существует список этих методов в rails_upgrade plugin, целью которого является проверка приложения для задач по обновлению с Rails 2 до Rails 3. relevant method is check_old_helpers, который проверяет наличие блоков помощников , содержащий любой из:

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

А как авторитетное это, этот плагин является официальным плагин Rails проекта, хотя это пропустить пару, которую я нашел с помощью функции поиска git history:

  • div_for
  • remote_form_for
  • link_to

Однако, если официальный инструмент для проверки этих хелперов отсутствует какой-то, возможно, это так же хорошо, как список, я, вероятно, найдет. Другое дело, что инструмент проверки обновления упоминает, что там должна быть устаревания предупреждения, если вы пропустите некоторые, которая обеспечивает дополнительную проверку:

Block хелперов, которые используют CONCAT (например, form_for) следует использовать <% = вместо < %. Текущая форма будет продолжать работать до сих пор, но вы получите предупреждения об устаревании с , эта форма уйдет в будущем.

 Смежные вопросы

  • Нет связанных вопросов^_^