我使用过此代码,通过检查模型中的条件来收集名称
<%= select_tag "name", options_for_select([["select" , "0" ]] + @names.collect{|p| [p.gatherName(p),p.id]}) %>
如果条件失败,则值返回空白,在这种情况下,otpions按此顺序排列,
<option value='1'></option>
<option value='2'>lamrin</option>
<option value='3'></option>
列出框选项1是balnk,选项2有值,选项3是空白。
所以请帮我解决如何避免收集
中的空白选项感谢
答案 0 :(得分:3)
除了收集之外,请尝试选择或拒绝,例如
<%= select_tag "name", options_for_select([["select" , "0" ]] + @names.reject{|p|p.gatherName(p).blank?}.collect{|p| [p.gatherName(p),p.id]}) %>
我还要问为什么gatherName接受一个与调用它的对象相同的参数?
编辑:Doh,我看得太慢了。答案 1 :(得分:1)
试试这个:
@names.collect{|p| [p.gatherName(p),p.id]}.reject {|i| i.first.blank?}
答案 2 :(得分:0)
我认为p.gatherName(p)
可能会返回nil /''。
你可以这样做:
<%= select_tag "name", options_for_select([["select" , "0" ]] + @names.select {|p| p.gatherName(p) && !p.gatherName(p).empty?}.collect{|p| [p.gatherName(p),p.id]}) %>