【问题标题】:How use block with enumerable in erb如何在erb中使用带有可枚举的块
【发布时间】:2019-12-24 03:12:43
【问题描述】:

如何在 erb(rails 视图)中使用 enumerable 和 block。例如:

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

我想选择字段class_room 等于10 的记录。我怎么能在erb中做到这一点???

【问题讨论】:

  • 我认为这种逻辑可能是更好的方法,在控制器中提供自己的实例变量。
  • 你应该考虑使用Schedule.where(class_room: 10) 来过滤数据库中的结果,而不是把所有的东西都拉出来然后在Ruby中过滤。

标签: ruby-on-rails ruby erb enumerable


【解决方案1】:

你有一些 &lt;%%&gt; 额外的,但这可能有效:

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

第一行只选择那些class_room 在一行中为 10 的计划,然后打开一个多行块,并在新行中使用 &lt;%= %&gt; 打开每个计划 class_room


或者,您可以在迭代期间传递给下一个元素unless schedule.class_room 是 10:

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

【讨论】:

    猜你喜欢
    • 2016-06-04
    • 2014-06-25
    • 1970-01-01
    • 2020-10-18
    • 2018-01-05
    • 1970-01-01
    • 1970-01-01
    • 2011-04-01
    • 2013-01-15
    相关资源
    最近更新 更多