Rails:删除select标记中的空值



这是我的选择标签的形式:

<%= 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'}) %>

相关内容

  • 没有找到相关文章