Рельсы ссылаются на имя поля, а не на связь между двумя таблицами, когда имя совпадает - PullRequest
0 голосов
/ 30 ноября 2011

В Rails у меня есть модель с именем Director, которая ссылается на таблицу с полем, называемым также «директор».

Когда я делаю запросы, использующие соединения (либо с отношением в модели, либо с помощью метода .joins), то пытаюсь напечатать поле директора, я получаю отношение вместо поля, поэтому при выполнении

<% @dvds.each do |dvd| %>
<%= "#{dvd.director}" %>

Я получаю что-то вроде:

#<Director id: 93, director: "Brad Bird">

Когда я должен получить только "Брэд Берд".

Есть ли способ устранить неоднозначность и получить только имя поля без необходимости менять названия моей модели?

1 Ответ

2 голосов
/ 30 ноября 2011

Вы можете сделать две вещи:

Используйте поле как:

<%= "#{dvd.director.director}" %>

Или добавьте to_s к модели, например:

class Director

  def to_s
    self.director
  end

end

Кстати, немного странно иметь поле director на Director модели

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...