2013-05-03 60 views
2

有没有办法使用ActiveRecord::Store而不声明访问?ActiveRecord ::存储没有访问器?

用例是我希望用户能够将任何变量附加到URL中,然后将该键/值与该记录一起保存。

例如,有人可能会做: http://example.com/response?order_number=12345&manager=Johnny&used_valet=true

所以我想order_numbermanager,并used_valet被保存在记录一个variables列。但是每个用户都会有一组他们想要存储的变量。

现在,我有这样的:

class Response < ActiveRecord::Base 
    store :variables 
end 

但这样做会引发unknown attribute错误:

$ Response.create(order_number: '12345') 
ActiveRecord::UnknownAttributeError: unknown attribute: order_number 

回答

0

你无法将它传递在构造函数中,你会必须独立设置每个变量。请参阅设置国家/地区值的行:http://api.rubyonrails.org/classes/ActiveRecord/Store.html

您应该能够遍历params对象以从查询字符串中获取所有参数,然后为每个参数设置settings属性。