Запутался при настройке отношения has_many - PullRequest
0 голосов
/ 11 февраля 2011

Я уже несколько часов играю с настройкой различных отношений, и я не уверен, как установить отношения has_many с тем, что я использую. Не уверен, что это просто конфликт имен, или я просто не понимаю.

Вот мои таблицы базы данных:

show_names (table name):
id
show_id
name

shows (table name):
id
length
synopsis
number_of_episodes
status

Так что у каждого шоу есть много возможных названий. Поэтому я хочу установить отношение has_many, чтобы я мог вызвать что-то вроде:

Show.all.shownames[0].name

Это дало бы мне имя.

Вот мои примеры кода для моих моделей, и я думаю, что тут все не так.

class ShowName < ActiveRecord::Base
  has_many :shows
end

и

class Show < ActiveRecord::Base
  belongs_to :shownames
end

Использование ShowName.all работает для получения данных, и Show.all тоже работает.

Итак, у меня есть 2 основных вопроса по этому поводу.

1) Я просто что-то неправильно называю или помещаю в неправильное место? 2) Как я могу получить доступ к названиям шоу? Я знаю, что в другом случае использую has_one, я просто использую имя объекта, он работает так же, как has_many

Любая помощь приветствуется.

1 Ответ

1 голос
/ 11 февраля 2011

Вы щелкнули на принадлежащие вам и has_many и вам потребовалось дополнительное подчеркивание. Попробуйте это:

class ShowName < ActiveRecord::Base
  belongs_to :show
end

и

class Show < ActiveRecord::Base
  has_many :show_names
end

а теперь ...

show = Show.first
show.show_names  =>  ["First name for first show", "Second name for second show"]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...