Ruby on rails 下拉列表选项值为空

Ruby on rails 下拉列表选项值为空,ruby-on-rails,ruby,Ruby On Rails,Ruby,我有一个下拉列表,其中有多个单选按钮值可供选择。如果不选择某个选项,则该值将作为null保存在数据库中。但是如果你选择了一个选项,你不能取消选中它。因此,我需要在下拉列表中使用一个“notstated”选项,该选项将在数据库中将值保存为null 如何以最佳方式更改这些设置,以便在数据库中保存空值。我需要修改下面的代码,以便显示一个额外的选项“not selected”值,当选择“not selected”时,值null将保存到数据库中 <%= account_pref.input "edi

我有一个下拉列表,其中有多个单选按钮值可供选择。如果不选择某个选项,则该值将作为null保存在数据库中。但是如果你选择了一个选项,你不能取消选中它。因此,我需要在下拉列表中使用一个“notstated”选项,该选项将在数据库中将值保存为null

如何以最佳方式更改这些设置,以便在数据库中保存空值。我需要修改下面的代码,以便显示一个额外的选项“not selected”值,当选择“not selected”时,值null将保存到数据库中

<%= account_pref.input "editorial_#{key}".to_sym, :as => :radio, :collection => options_for(Editorial, key.to_sym), :wrapper_html => { :class => "compact" }, :label => key.titleize  %>
:radio,:collection=>options\u for(编辑,key.to\u sym),:wrapper\u html=>{:class=>“compact”},:label=>key.titleize%>

我认为,只有空字符串才可以

:collection => [['<none>','']] + options_for(Editorial, key.to_sym)

或者重写模型中的setter以执行相同的操作。不过,这两种选择都有点不合时宜。

谢谢你的回复。我输入的代码如下:collection=>([['notstated','']]+options_for(Editorial,key.to_sym))在下拉列表的顶部给了我一个选项'notstated',当我选择并保存它时,数据库中保存了一个空字符串。这就是我希望保存“null”值的地方,但问题是如何保存?我通过将第二个参数设置为nil(如[['',nil]])进行了实验,由于某种原因,数据库将dropdownlist的值保存为“开”。奇怪。啊,我不知道我们在谈论一个字符串字段。我只使用了针对id字段发布的解决方案。更新了我的答案,增加了建议。
def create
  @account = Account.new(params[:account])
  @account.editorial = nil if @account.editorial.empty?

  ...
end