这是我的选择标签的形式:
<%= f.select(:example_name, ModelName.all.collect {|p| [ p.example_name, p.example_name ] }, {:include_blank => 'Select Example'}) %>
返回模型ModelName的所有example_name。但是该模型在数据库中存储了空值。
因此,我希望select标记只检索留下空值或nil值的有效条目。
我们怎么做?
Thanks in advance
你可以从
ModelName.all
ModelName.where("example_name <> ''")
这将省略 NULL
和""
值。
注意直接在视图中放置查询是不好的做法;一般来说没有这个必要。该查询应该在控制器操作的赋值中使用。
@select_options = ModelName.where(...
,然后在视图
中<%= f.select(:example_name, @select_options.collect { [...
你甚至可以将collect
也移动到动作中。
try
<%= f.select(:example_name, ModelName.where("example_name IS NOT NULL && example_name != ''").collect {|p| [ p.example_name, p.example_name ] }, {:include_blank => 'Select Example'}) %>