我试图将我的项目从php迁移到rails。哇,我已经面对一个女巫我用php解决了问题,但我无法弄清楚如何让它与rails配合使用。
这是我的表格
ads
id
category_id
title
text
ad_real_estate_details
id
ad_id
nb_room
floor
ad_car_details
id
ad_id
color
brand
以下是我成功的事情:
class Ad < ActiveRecord::Base
attr_accessible :category_id :title, :text, :ad_real_estate_details
has_one :ad_real_estate_details
accepts_nested_attributes_for :ad_real_estate_details, allow_destroy: true
end
class AdRealEstateDetail < ActiveRecord::Base
belongs_to :ad
validates :ad_id, presence: true
end
但是,这不适用于除real_estate之外的其他类别。
所以我在考虑多态性,但多态性意味着我应该在我的&#34; ad&#34;中添加一个引用。表格到详细信息表格,并从详细信息表格中删除annonce_id,我认为这是无稽之谈,因为有些广告没有详细信息,而且没有广告就没有意义。
我还想到了一个抽象类AdDetails,而AdRealEstateDetail会继承它,但是这对于rails来说是不可能的,因为所有子类都将共享同一个表。
有没有人能解决这类问题?
感谢
答案 0 :(得分:0)
您是说要根据广告类型存储不同的“详细信息”?
一个简单的解决方案是将“详细信息”序列化为JSON(或您喜欢的任何格式),并将它们存储在TEXT列中。