рефакторинг rails, блок с условным

#ruby-on-rails #ruby #ruby-on-rails-3

#ruby-on-rails #ruby #ruby-on-rails-3

Вопрос:

Есть следующая ошибка:

 <% @foo.each do |foo| unless @foo.nil? %>

<% end %>
 

Есть ли способ получить как условное условие, так и блок в одной строке?

Ответ №1:

Просто вставьте to_a туда:

 <% @foo.to_a.each do |foo| %>

<% end %>
 

Вызов to_a on nil дает вам пустой массив, вызов to_a array дает вам массив.

Ответ №2:

IMO очиститель, чтобы @foo был пустым списком, что обычно происходит с поисковиками Rails.

Или завершите цикл частичным и просто включите условие в шаблон основной строки.