2013-07-14 36 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

相關問題