0

プロジェクトをphpからrailsに移行しようとしています。うわー、私はphpで解決策を持っていた魔女へのpbに直面していますが、それをレールで動作させる方法がわかりません。

これが私のテーブルです

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 以外のカテゴリでは機能しません。

だから私はポリモーフィズムを考えていましたが、ポリモーフィズムは、「広告」テーブルの参照を詳細テーブルに追加し、詳細テーブルから annonce_id を削除する必要があることを意味します。 -広告なしの感覚。

抽象クラス AdDetails も考えていたので、AdRealEstateDetail はそれを継承しますが、レールではすべてのサブクラスが同じテーブルを共有するため、これは不可能です。

この種の問題の解決策はありますか?

ありがとう

4

1 に答える 1

0

広告の種類ごとに異なる「詳細」を保存したいということですか?

簡単な解決策の 1 つは、「詳細」を JSON (または任意の形式) としてシリアル化し、それらを TEXT 列に格納することです。

于 2013-01-27T23:13:15.380 に答える