我有一个模型,它在数据库中有一个实际列。此列存储为 JSON 配置字符串。我使用了一堆我想在这个配置 JSON 属性中映射的虚拟属性。我基本上不想在数据库中创建一堆列,而是使用这个 JSON 属性来包含所有内容。有没有比以下更清洁def
的方法来实现这一目标?
class Device < ActiveRecord::Base
attr_accessible :configuration
serialize :configuration, JSON
attr_accessor :background_color, :title
# below is ew
def background_color; self.configuration["background_color"]; end
def background_color=(value); self.configuration["background_color"] = value; end
def title; self.configuration["title"]; end
def title=(value); self.configuration["title"] = value; end
end
理想情况下,我会寻找类似的东西attr_maps_to_hash :configuration, [:background_color, :title]
。这样的事情存在吗?