0

我正在尝试将我的项目从 php 迁移到 rails。Mow,我面临着一个 pb 到我有 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

但是,这不适用于房地产以外的其他类别。

所以我在考虑多态,但是多态意味着我应该在我的“广告”表中添加一个引用到详细表,并从详细表中删除 annonce_id,我认为这是无稽之谈,因为有些广告可以没有细节,而细节是非- 没有广告的感觉。

我也在考虑一个抽象类 AdDetails,并且 AdRealEstateDetail 将从它继承,但是这对于 rails 是不可能的,因为所有子类都将共享同一个表。

有没有人有解决这种问题的方法?

谢谢

4

1 回答 1

0

您是说要根据广告类型存储不同的“详细信息”?

一种简单的解决方案是将“详细信息”序列化为 JSON(或您喜欢的任何格式),并将它们存储在 TEXT 列中。

于 2013-01-27T23:13:15.380 回答