动态字段变成流,存入数据库中,附代码如下:
# Serialize a preferences attribute.
class User < ActiveRecord::Base
serialize :preferences
end
# Serialize preferences using JSON as coder.
class User < ActiveRecord::Base
serialize :preferences, JSON
end
# Serialize preferences as Hash using YAML coder.
class User < ActiveRecord::Base
serialize :preferences, Hash
end
然后在程序中动态解析流为对象。 对象中的属性可以动态的增删改。缺点就是利用 SQL 查询这个字段那是相当困难,另外维护成本高。
如果数据量大,可以用 rails db 直接写 sql 语句,比 rake 中写 ruby 减少了网络 IO 传输的开销,节省的大量的时间及减少了程序跑一半意外挂掉的风险