Ruby on rails 当选项为nil rails 4时如何隐藏窗体选择选项

Ruby on rails 当选项为nil rails 4时如何隐藏窗体选择选项,ruby-on-rails,ruby-on-rails-4,Ruby On Rails,Ruby On Rails 4,我有以下表格: <%= f.select(:size_requested, [@item.size1, @item.size2, @item.size3, @item.size4, @item.size5, @item.size6, @item.size7, @item.size8, @item.size9, @item.size10], {}, { class: 'form-control quantity-select' }) %> 我试图让它只显示非零的尺寸作为选项,并避

我有以下表格:

<%= f.select(:size_requested, [@item.size1, @item.size2, @item.size3, @item.size4, @item.size5, @item.size6, @item.size7, @item.size8, @item.size9, @item.size10], {}, { class: 'form-control quantity-select' }) %>

我试图让它只显示非零的尺寸作为选项,并避免这种情况:

当我尝试类似(@item.size6 if@item.size6)的选项时,我仍然有相同的问题,并且nil选项仍然可见。有谁能带领我朝着正确的方向以干净的方式解决这个问题


谢谢你的帮助

您可以使用
compact
方法从数组中删除nil。例如:

[1, nil, 2, nil].compact

此外,正如对您问题的评论所建议的,最好在控制器中设置数组,然后在视图中引用该数组,而不是在视图本身中执行逻辑。

您应该尝试编译列表以显示在控制器中,这样您就不必依赖视图来做出决定。在任何呈现此表单的控制器方法中,添加一个@sizes变量,您可以使用非nil值填充该变量。我现在要试一试。我应该澄清,决定列表中内容的实际逻辑应该在模型中,但对实例变量的赋值应该在控制器中。谢谢!我打算这样试试。