我有两个表,registrations
分别discounts
保存有关注册和折扣的信息。每个注册可以有一个折扣,每个折扣可以有多个注册。
当我做一些事情时,我可以取消所有注册以获得折扣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
,因为注册不属于折扣。