Search code examples
ruby-on-railsrubyerbenumerable

How use block with enumerable in erb


How use enumerable in erb (rails views) with block. for example:

<% <% @schedules.select do |s| s.class_room == 10 %>
  <%= s.class_room %>
<% end %> %>

I want select record where field class_room equal 10. how i can do this in the erb???


Solution

  • You have some <% and %> extra, but this might work:

    <% @schedules.select { |schedule| schedule.class_room == 10 }.each do |schedule| %>
      <%= schedule.class_room %>
    <% end %>
    

    First line just select those schedules where class_room in is 10 in one line, then opens a multi line block, and in a new line you use <%= %> to open each schedule class_room.


    Alternatively you can pass to the next element during the iteration unless the schedule.class_room is 10:

    <% @schedules.each do |schedule| %>
      <% next unless schedule.class_room == 10 %>
      <%= schedule.class_room %>
    <% end %>