我正在創建一個監視幾個模型的AuditLog觀察器。Rails 3 - 如何創建一個JSON對象來存儲在數據庫中
我希望觀察者有一個after_create,它創建一個存儲在數據庫列中的JSON對象。它將包含數據像{photoid:123,photoname:「asdasd」,creator_id:「asdasd」}等...
在Rails中,如何創建這種類型的JSON對象,然後如何將其插入數據庫以及其他非JSON字段?
感謝
我正在創建一個監視幾個模型的AuditLog觀察器。Rails 3 - 如何創建一個JSON對象來存儲在數據庫中
我希望觀察者有一個after_create,它創建一個存儲在數據庫列中的JSON對象。它將包含數據像{photoid:123,photoname:「asdasd」,creator_id:「asdasd」}等...
在Rails中,如何創建這種類型的JSON對象,然後如何將其插入數據庫以及其他非JSON字段?
感謝
看看這個:http://github.com/laserlemon/vestal_versions
如果它不是你要找的內容,它至少會告訴你它的完成。
首先,肯定檢查了ActiveRecord的序列化,看看它做你需要什麼:http://api.rubyonrails.org/classes/ActiveRecord/Base.html#method-c-serialize
但是,如果你需要專門的JSON(連載使用YAML默認情況下),那麼你可以隨時僞造它手工製作。
您可以簡單地在Ruby中構建一個散列,然後在將其分配給模型屬性之前調用to_json
。
data = { 'photoid' => 123, 'photoname' => "asdasd", 'creator_id' => "asdasd" }
myrecord.stored_data = data.to_json
myrecord.save
謝謝,我會試試看。 – AnApprentice 2010-09-30 22:00:33
是to_json安全嗎?我在Google搜索中看過一些提到它有時會失敗的帖子?對此有何想法? – AnApprentice 2010-09-30 22:08:22
當你在activerecord對象上使用'to_json'時(你應該使用'as_json'或某物),有一些皺紋,但是爲了序列化一個簡單的哈希,它真的很簡單JSON編碼......沒有太多錯誤。你在谷歌上找到了什麼? – tfe 2010-10-01 01:22:13
當前版本的rails支持開箱即用的json序列化。在遷移中將字段定義爲字符串(或文本),然後:
class Foo < ActiveRecord::Base
serialize :field, JSON
end
bar = Foo.new
bar.field = [1,2,3]
bar.save
審覈日誌只是一個讓問題更易於理解的示例......不過謝謝。 – AnApprentice 2010-09-30 22:00:11