Как получить доступ к вложенной модели из представления? - PullRequest
1 голос
/ 17 октября 2008

На моей странице есть выпадающий список:

<p>
     <%= f.label :episode_id %><br />
     <%= f.collection_select(:episode_id, @episodes, :id, :show) %>
</p>

Эпизод имеет идентификатор и belongs_to для шоу с именем. В выпадающем меню я хотел бы отобразить название шоу. :show.name не работает для отображения имени. Как мне это сделать?

Ответы [ 3 ]

1 голос
/ 17 октября 2008

Один из способов сделать это - создать в классе Episode метод с именем show_name, например, так:

def show_name
  show.name
end

Последний символ, который вы передаете в collection_select, - это имя метода, который вы хотите вызвать для получения текста опции.

0 голосов
/ 17 октября 2008

Вы можете использовать #select вместо #collection_select. Вам нужно проделать немного больше работы для создания пар значение / текст, но это не так уж плохо.

f.select(:episode, :id, @episodes.map{|e| [e.show.name, e.id]})
0 голосов
/ 17 октября 2008

Не знаю, сработает ли это, но вы пробовали episode.show.name?

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