2013-05-03 67 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屬性。