私は、has_and_belongs_to_manyアソシエーションで接続された2つのモデルがある場合、それぞれのアソシエーションのために他のデータをジョインテーブルに保存できますか?つまり、余分なデータはどちらかのテーブルの単一のレコードの一部ではなく、それらの間の接続の代わりになります。次のようにRails:has_and_belongs_to_many関連に特別な属性を追加することは可能ですか?
私の実際のモデルでは、以下のとおりです。
class Part < ActiveRecord::Base
has_and_belongs_to_many :assemblies
has_and_belongs_to_many :packages
belongs_to :user
validates :name, :user_id, :presence => true
end
class Package < ActiveRecord::Base
has_and_belongs_to_many :parts
belongs_to :user
end
だから、ポイントは各部分が多くのパッケージで提供されていることであり、各パッケージは異なる部分があります。私が追加したいのは数量です。それは各部品の量ではなく、各部品の各パッケージの量です。
私はActiveRecordでこれを行う方法が見つかりません。もし私がrails/activerecordを使用していなかったら、部品をパッケージに関連付ける数量列を結合テーブルに追加するだけです。私は明らかに移行でこの変更を行うことができますが、ActiveRecordを使用してどのように値にアクセスしますか?
このような素敵な概要を作成するためにどのようなプログラムを使用しましたか? – MicFin
(私の社内リファレンス#485)レコード全体が作成されるのと同時に、どのように予定を更新するのですか?また、余分な属性を後でどのように読みますか?私はAppointment.find_byを介してのみ行うことができます.............しかし、私はpatient.appointments.first.appointment_dateのような不気味なものを望みます – ace
あなたはこのようにappointment_date属性を更新できます:belongs_to:physician 、:touch =>:appointment_date。 – hashrocket