当没有选择选项时,选择发送nil的Rails选项

时间:2015-12-17 09:03:43

标签: ruby-on-rails ruby

我的rails应用程序中有以下代码:

<%= select :object,
           :id,
           options_for_select(Hash[@object_list.map { |object| [object.name, object.id] }]),
           {:include_blank => 'Please select...'},
           {} %>

如果没有选择选项,那么在我的控制器中我会收到一个空字符串。

如何选择发送'nil'值的选项呢?

2 个答案:

答案 0 :(得分:2)

我认为您可以通过在列表中插入nil来实现这一目标。

<%= select :object,
           :id,
           options_for_select(Hash[@object_list.map { |object| [object.name, object.id] }].merge({:0 => nil}), selected: 0) %>

答案 1 :(得分:0)

您应该为控制器使用before_action回调。

class SomeController
  before_action :prepare_params

  private

  def prepare_params
    params[:your_param] = nil if params[:your_param].blank?
  end
end