Проблемы ассоциации Rails db - PullRequest
0 голосов
/ 07 марта 2011

Это мои текущие настройки таблицы:

ВИНА
идентификатор ... и т.д.. и т.д.

НАГРАДЫ
id, wine_id, Competition_id, Medal_id, дата, ссылка

КОНКУРСЫ
идентификатор, имя

МЕДАЛИ
id, введите

Награда> принадлежит_: вино
Wine> has_many: awards,: autosave => true,: зависимый =>: уничтожить

Это все хорошо, но я бы хотел иметь возможность ссылаться на столбцы «имя» и «тип» для каждого конкурса и медали. В настоящее время я могу видеть только «Competition_id» и «Medal_id» ... Я хотел бы иметь возможность сказать «@ wine.awards [0] .medal», что приведет к «Gold» ... или даже «Medal_type» в этом отношении. Как бы я установил эту связь в моей модели?

1 Ответ

1 голос
/ 07 марта 2011

Если я правильно понял, используя это соотношение:

Award > belongs_to :medal

так что вы можете сказать @ wind.awards [0] .medal.type и иметь "Gold" как результат Каждое отношение должно быть определено, поэтому вы также должны добавить

 Award > belongs_to :competition

Так что вы можете @ wine.awards [0] .competition.name

А также важно обратное отношение.

Competition > has_many :awards
Medals > has_many :awards
...