我刚刚启动了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
谢谢!
答案 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:)