2

我刚刚开始 Rails 开发,并且有一个关于从具有可变数量参数的 url 将数据输入到我的数据库中的序列化哈希中的问题。我试图弄清楚如何以action?1=.5&2=.6&3=.1我想添加到我的序列化哈希的形式(等)中的任意数量的参数/值来实现一个 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

谢谢!

4

1 回答 1

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

此外,最好在完成更新哈希后调用 object.save,而不是为每个 Integer 键调用 :)

于 2013-06-27T23:58:07.657 回答