首先,我对Rails很新,我对模型有一些相当基本的问题。
我有一个带有名为Properties的has_many属性的Event模型。我生成了我的Property模型但是必须定义属性,但是属性可以根据事件而改变。
示例:
如何使用“动态”属性创建属性模型?
感谢您的帮助。
Ps:我正在使用SQLite
答案 0 :(得分:1)
如上所述,postgreql内置了JSON,但是如果您使用的是其他任何数据库,则可以使用serialization设置您的模型
class Event < ApplicationRecord
serialize :property, JSON
end
然后为您自动完成解析/保存,无需在您自己的代码上混乱代码
Event.create(name: 'Famous Person Concert Thing', property: { artist: 'Someone famous, most likely', kids_allowed: false })
# SQL (0.2ms) INSERT INTO "events" ("name", "property", "created_at", "updated_at") VALUES (?, ?, ?, ?) [["name", "Famous Person Concert Thing"], ["property", "{\"artist\":\"Someone famous, most likely\",\"kids_allowed\":false}"], ["created_at", "2017-07-15 18:47:05.949921"], ["updated_at", "2017-07-15 18:47:05.949921"]]
Event.last.property
# => {"artist"=>"Someone famous, most likely", "kids_allowed"=>false}
答案 1 :(得分:0)
您可以将数据作为序列化哈希存储在sqlite的字符串列中。这样,您可以更灵活地处理存储的数据类型。 要获得对json列的更多本机支持,您应该考虑使用postgresql。