处理接受 Rails 形式的哈希值的方法



我有一个具有以下方法的模型:

class Lead < ActiveRecord::Base
  attr_accessor :value
  def value
    @value = {}
  end
end

在我的表格中,我有以下内容:

f.text_field "value[start_range]"

提交表单时,我希望参数哈希如下所示:

{leads => { :value => { "start_range" => "some value", "arbitrary_data" => "something else" } } }

换句话说,输入中的名称/值对作为键/值对插入到 value 方法中。

但是,相反,我收到以下错误:

undefined method `value[start_range]' for #<Lead:0x007ff83321a4c0>

显然,它正在寻找一种名为 value[start_range] 的方法,当我有一个名为 value 的方法时,它是一个哈希,可以具有它想要的任何键,包括start_range。

我该如何解决这个问题?

我认为"序列化"方法适合您的需求。

class Lead < ActiveRecord::Base
  attr_accessor :value
  serialize :value, Hash
end

和视图

text_field_tag 'value[start_range]'

最新更新