登録と割引に関する情報をそれぞれ保持する2 つのテーブルがregistrations
あります。discounts
各登録には 1 つの割引を含めることができ、各割引には複数の登録を含めることができます。
のようなことをすると、割引のためにすべての登録を引き出すことができますがDiscount.find(1).registrations
、電話をかけようとするとRegistration.find(1).discount
エラーが発生します
Unknown column 'discounts.registration_id' in 'where clause': SELECT `discounts`.* FROM `discounts` WHERE `discounts`.`registration_id` = 1 ORDER BY `discounts`.`id` ASC LIMIT 1`
私のモデルは現在、次のように設定されています。
class Registration < ActiveRecord::Base
has_one :payment
has_one :discount
end
class Discount < ActiveRecord::Base
has_many :registrations
end
さらに、私のregistration
テーブルには外部キーがありますdiscount_id
。
belongs_to
モデルに関係を設定すれば、関連付けを機能させることができますregistrations
が、登録は割引に属していません。割引がある場合とない場合があります。
この関係をどのように設定すればよいですか?別のテーブルを設定してhas_many, through
リレーションシップを使用する必要がありますか?
編集:登録は割引に属していないため、モデルでbelongs_to
関係を使用したくありません。registration