我用postgresql做了这个,但我无法用mysql实现它。我正在构建具有以下类的CMS。
class Content::Page < ActiveRecord::Base
validates_presence_of :route
has_many :page_elements, :foreign_key => "content_page_id"
has_many :elements, :foreign_key => "content_element_id", :through => :page_elements
end
class Content::PageElement < ActiveRecord::Base
belongs_to :page , :foreign_key => "content_page_id"
belongs_to :element , :foreign_key => "content_element_id"
validates_presence_of :content_page_id
validates_presence_of :content_element_id
validates_presence_of :position
end
class Content::Element < ActiveRecord::Base
self.inheritance_column = :_type_disabled
serialize :data
validates_presence_of :type
validates_presence_of :data
end
我希望能够做的只是简单地将json数据添加到元素中,并能够使用rails帮助程序(如form_for)读取和更新该数据。
我试图避免为项目中的每种元素设置模型。例如,我可能有一个具有各种文本字段的英雄对象。然后我可能有一个由几个英雄对象组成的轮播对象。我也可能有一个旋转木马对象,它只包含几个图像。有没有什么方法可以在不为每种元素类型创建模型的情况下实现这一目标?