2015-05-01 3 views
1

После того, как я связал «program_id» со списком учетных записей, rails generate migration AddProgramIDToAccounts program_id:interger и добавив <td><%= account.program_id %> в файл index.hrml.erb, чтобы отобразить результаты. Тем не менее, я получаю идентификатор, а не «имя программы», как в раскрывающемся списке, которое я создал в файле _forms.htlm.erb.Отображение строки, а не целого числа в файле index.html.erb

<div class="form-group"> 
    <%= f.label :program %><br> 
    <%= f.collection_select :program_id, Program.all, :id, :program, {prompt: "Choose a Program"}, {class: "btn btn-default dropdown-toggle"} %> 
    </div> 

Я чувствую, что создал миграцию неправильно, но я не уверен.

Rails 4.1.8

рубин 2.1.5p273 (2014-11-13 ревизия 48405) [x86_64-линукс]

ответ

0

Вам нужно написать

account.program.name 

в вашем index.html .erb файл вместо account.program_id

+0

Работал отлично. Спасибо. –

+0

@ M.TDavis Добро пожаловать. Примите мой ответ, поскольку он решил вашу проблему –

1

С этим, вы говорите (с комментариями)

<%= f.collection_select 
    :program_id, #the parameter name 
    Program.all, #the list of objects to use in the select 
    :id, #the parameter value 
    :program, #the method you call on each object to get the text you want to display in the select 
    {prompt: "Choose a Program"}, {class: "btn btn-default dropdown-toggle"} %> 

Итак, на экране выбора будут отображаться результаты вызова .program для каждого объекта программы. Это кажется мне неправильным, но вы не предоставляете никаких подробностей о своей схеме, поэтому я не могу сказать точно.

+0

, что имеет смысл. Я просто не мог обработать, как синтаксис будет выглядеть в моей голове. Но я понимаю, что параметр вместе с методом дает конечный результат. Это всегда что-то маленькое, что сводит вас с ума. Спасибо за дополнительный вход. –

Смежные вопросы