我可以像这样为statistic
创建一个person
:
@person = Person.find(person.id)
@statistic = @person.statistics.build(:value => @value, :updated => @updated)
one-to-many
和has_many
之间存在belongs_to
(person
/ statistic
)关系。
以上工作正常。
但是,我也希望statistic
也属于race
(在跑步/驾驶比赛中比赛),即我已将statistic
模型更改为两个{{1} }} S:
belongs_to
以上是否正确或我是否需要以某种方式在我的模型中使用belongs_to :person # just had this before
belongs_to :race # this is new
?如果是这样,怎么样?
如何更改此更改的控制器代码?
非常感谢。
答案 0 :(得分:0)
如果您希望statistic
仅属于race
,则无需使用has_many :through
。您需要做的就是在通过新对象构建statistic
条目时添加新引用:
@race = Race.new(....)
@person.statistics.build(value: @value, updated: @updated, race: @race)
或外键(如果引用的种族已经存在)
@person.statistics.build(value: @value, updated: @updated, race_id: @race.id)