2013-07-14 79 views
1

我可以创建一个给定的person这样的statistic记录:控制器代码来创建有两个belongs_to的关系

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

personstatistic之间的one-to-manyhas_many/belongs_to)的关系。

上述工作正常。

不过,我也希望statistic属于一个race太(赛事在跑步/驱动座圈),即我已经改变了我statistic模型有两个belongs_to S:

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

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

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

非常感谢。

回答

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) 
+1

谢谢埃拉德: )。 – ale

相关问题