1

我可以statistic为这样的给定创建一个person

@person = Person.find(person.id)
@statistic = @person.statistics.build(:value => @value, :updated => @updated)

和之间存在one-to-many( has_many/ belongs_to) 关系。personstatistic

以上工作正常。

但是,我也希望statistic属于 a racetoo(比赛如跑步/驾驶比赛),即我已将我的statistic模型更改为有两个belongs_tos:

belongs_to :person # just had this before
belongs_to :race   # this is new

以上是正确的还是我需要以through某种方式在我的模型中使用 a ?如果是这样,怎么做?

如何更改我的控制器代码以进行此更改?

非常感谢。

4

1 回答 1

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)
于 2013-07-14T12:13:17.603 回答