在index.html.erb文件上显示字符串而不是整数

时间:2015-05-01 14:43:34

标签: ruby-on-rails ruby ruby-on-rails-3

我链接&#34; program_id&#34;到帐户表rails generate migration AddProgramIDToAccounts program_id:interger并添加 index.hrml.erb文件中的<td><%= account.program_id %>以显示结果。但是,我得到的是ID,而不是&#34;程序名称&#34;就像我在_forms.htlm.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

ruby​​ 2.1.5p273(2014-11-13修订版48405)[x86_64-linux]

2 个答案:

答案 0 :(得分: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"} %>

因此,select将显示在每个Program对象上调用.program的结果。我感觉不对,但你没有提供你的架构的任何细节,所以我不能肯定地说。

答案 1 :(得分:0)

你需要写

account.program.name
在index.html.erb文件中使用

而不是account.program_id