2010-12-09 2 views
6

Я портирую приложение 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.... 

Что изменилось в рельсах, чтобы требовать этого обновленный синтаксис?

+2

Просто наконечник, вы можете использовать `@ apps.blank?` Вместо `@apps.nil ? || @ Apps.empty? `. Документы [здесь] (http://api.rubyonrails.org/classes/Object.html#method-i-blank%3F). – markquezada 2010-12-09 02:35:39

+0

Спасибо, я использовал это для строк, не знаю, почему я не использовал его здесь! – Joshua 2010-12-09 18:51:29

+0

Возможно, это связано с устаревшими помощниками блока стиля ... хотелось бы узнать больше о внутренних изменениях. Запуск щедрот ... – Joshua 2010-12-13 18:54:57

ответ

0

This railscast объясняет изменения блоков erb в Rails 3 и почему они были сделаны.

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