1

メール、電話、名前などの法的リードの基本的な連絡先情報を保持する「連絡先」と呼ばれるレールモデルがあります。次のようになります。

class Contact < ActiveRecord::Base

  attr_accessible :name, :phone, :email, :city, :state, :zip_code

連絡先のタイプに応じて、互いに異なる追加の属性が必要です。

私はこのようなものから来る振る舞いが欲しい:

class DisabilityContact < Contact 
    attr_accessible :employed, :medical_condition, :represented

しかし、DisabilityContact はこれらの余分なフィールドを含まない "Contact" テーブルを使用するため、これは不可能です。モデルと関係を構築して、これらの属性を次のように設定できるようにする方法についてアドバイスをお願いします。

@contact = DisabilityContact.create
@contact.employed =  true

また

@contact = DisabilityContact.create
@contact.special_attributes.employed = true

PS私はデータをシリアライズしたくないです。

ありがとう!

4

1 に答える 1

0

フィールドを連絡先テーブルに追加して、必要な場合にのみ使用することができます。または、複数のテーブルを持つこともできます。

記事Single Table Inheritance in Railsが役立つかもしれません。

于 2012-09-11T22:14:27.107 に答える