序列化哈希导轨

时间:2013-06-27 20:42:47

标签: ruby-on-rails database activerecord serialization hash

我刚刚启动了Rails dev并且有一个问题,就是在数据库中使用可变数量的params将数据输入到数据库中的序列化哈希中。我正在试图弄清楚如何使用我希望添加到序列化哈希的表单(action?1=.5&2=.6&3=.1等)中的任意数量的param /值来实现url。如果我的哈希已经存在一些先前存储的键/值,我该如何向同一个哈希添加更多?我希望所有数据都在一列中。

我有一个方法,我传递一个模型对象:

def add_data_to_hash(obj)
  params.each do |key, value|
    if (key.to_i.is_a?(Integer) && key.to_i != 0) then
      obj.hash[key] = value
      obj.save
    end
  end
end

谢谢!

1 个答案:

答案 0 :(得分:1)

这样的事可能吗?

这应该放在控制器上

new_values = {}
url = request.fullpath.split("?").last
url.split("&").each do |kv|
  pair = kv.split("=")
  new_values[pair[0].to_i] = pair[1]
end
new_value.delete 0

在你的方法中有类似的东西

new_values.each do |k,v|
  object.hash[k] = v
end
object.save

最后更新哈希值而不是每个Integer键更好地调用object.save:)