Rails:向collection_select添加选项

时间:2012-05-04 12:48:09

标签: ruby-on-rails-3 form-helpers

我正在使用collection_select字段,但是需要在默认情况下添加一些选项,它们不代表特定的模型记录,用于将appropriet字段设置为NULL。但我无法找到任何办法。

如果您需要更多信息,请不要随便询问。 将Rails 3.2.3与标准表单助手一起使用。

P.S。我知道我可以这样做:

@parents = ['default_name','nil']
@parents << Model.all.map {|item| [item.name,item.id]}

但我认为有一种更优雅的方式。

3 个答案:

答案 0 :(得分:15)

有一个:include_blank选项,您可以传递给collection_select辅助方法:

f.collection_select(:author_id, Author.all, :id, :name_with_initial,
                    :include_blank => "Nothing selected")

还有一个类似的选项叫做:提示,也可以查看。

答案 1 :(得分:11)

您可以改为使用选择

f.select(:item_id, @items.collect {|p| [ p.name, p.id ] } + ['Or create a new one like','new'], {:include_blank => 'Please select a item'})

答案 2 :(得分:1)

你认为这样的东西是可以接受的吗?

collection_select :field1, :field2, @models+[Model.new(name: "default_name")], :name, :id