用于创建具有两个belongs_to关系的记录的控制器代码

时间:2013-07-14 11:36:24

标签: ruby-on-rails ruby-on-rails-3.2 has-many belongs-to

我可以像这样为statistic创建一个person

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

one-to-manyhas_many之间存在belongs_toperson / statistic)关系。

以上工作正常。

但是,我也希望statistic也属于race(在跑步/驾驶比赛中比赛),即我已将statistic模型更改为两个{{1} }} S:

belongs_to

以上是否正确或我是否需要以某种方式在我的模型中使用belongs_to :person # just had this before belongs_to :race # this is new ?如果是这样,怎么样?

如何更改此更改的控制器代码?

非常感谢。

1 个答案:

答案 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)