Я портирую приложение Rails 2.8 на Rails 3. Большинство вещей теперь работают, и я медленно сглаживаю изломы. Одно поведение, которое я нашел, вызывает недоумение, и я хотел бы понять, что изменилось за кулисами. Следующий фрагмент кода работает в 2.x, но терпит неудачу в 3.0:Почему это поведение erb изменилось в Rails 3?
<% if @apps.nil? || @apps.empty? %>
No rated applications.
<% else
ratingshidden = false
@apps.each { |app| %>
display app stuff etc....
, чтобы заставить его работать в 3, я должен изменить следующим образом:
<% if @apps.nil? || @apps.empty? %>
No rated applications.
<% else %>
<%
ratingshidden = false
@apps.each { |app| %>
display app stuff etc....
Что изменилось в рельсах, чтобы требовать этого обновленный синтаксис?
Просто наконечник, вы можете использовать `@ apps.blank?` Вместо `@apps.nil ? || @ Apps.empty? `. Документы [здесь] (http://api.rubyonrails.org/classes/Object.html#method-i-blank%3F). – markquezada 2010-12-09 02:35:39
Спасибо, я использовал это для строк, не знаю, почему я не использовал его здесь! – Joshua 2010-12-09 18:51:29
Возможно, это связано с устаревшими помощниками блока стиля ... хотелось бы узнать больше о внутренних изменениях. Запуск щедрот ... – Joshua 2010-12-13 18:54:57