2013-07-14 1 views
1

я могу создать statistic для данного person как это:код контроллера, чтобы создать запись, которая имеет два BELONGS_TO отношения

@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 модель имеет два 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

Спасибо Elad:). – ale