Я пытаюсь поэкспериментировать с блоками и как перебирать коллекции в ERB. У меня есть модели в соотношении «один ко многим» (канал и их соответствующие типы).Rails ERB итерация по массиву
контроллер
class HomePageController < ActionController
def index
@channels = Channel.all
end
end
Тогда в представлении, я перебирать все атрибуты, принадлежащих к каналу. Когда я хочу, чтобы напечатать все виды, этот код дает мне желаемый результат:
вид
<% @channels.each do |channel| %>
<% @types.each do |type| %>
<%= Type.find(type).name %>
<% end %>
<% end %>
Сначала я пытался добиться этого, используя yield
ключевое слово в аккуратном однострочнике, но я не мог» t удалять что-либо в браузере, только на консоль
<% @types.each {|type| yield Type.find(type).name } %>
Есть ли эквивалентная однострочная линия?
не <% = @ types.each {| type | Type.find (type) .name}%> work? – srecnig
- это @types массив целых идентификаторов? –
'<% =' выводит содержимое, а '<%' просто выполняет его. См. Ответ от @srecnig. – mudasobwa