我对Rails很新,我在显示关联表格数据方面存在问题
这是我的
class Candidate < ActiveRecord::Base
has_many :emails
end
class Email < ActiveRecord::Base
belongs_to :candidate
end
class CandidatesController < ApplicationController
def index
@candidates = Candidate.includes(:emails).all
end
end
在我看来index.html.erb我有
<table>
<% @candidates.each do |candidate| %>
<tr>
<td> Name: <%= candidate.name %> </td>
<% candidate.emails.each do |email_address| %>
<td> <%= email_address %> </td>
<% end %>
</tr>
<% end %>
</table>
以下是我在浏览器中输出的输出:
Name: Mohsin #<Email:0xbd41114>
Name: Faysal #<Email:0xbd40f0c>
Name: Adeel #<Email:0xbd40d68>
它只显示候选人的数据,而不是来自关联的电子邮件表,为什么?有人可以帮帮我吗???我被困在这里了!
答案 0 :(得分:2)
<%= email_address.email %>
or
<%= email_address.field_name %>
答案 1 :(得分:1)
在您的视图代码中,您正在呈现电子邮件对象,而是呈现电子邮件对象的字段,例如
<table>
<% @candidates.each do |candidate| %>
<tr>
<td> Name: <%= candidate.name %> </td>
<% candidate.emails.each do |email_address| %>
<td> <%= email_address.email %> </td>
<% end %>
</tr>
<% end %>
</table>
答案 2 :(得分:0)
#<Email:0xbd41114>
这显示了活动记录的对象。您需要在emails
表中指定存储列email-ids
的字段名称。
例如:您已将emails
列中的所有电子邮件ID存储在email_id
列下,然后执行以下操作:
<% candidate.emails.each do |email_address| %>
<td> <%= email_address.email_id %> </td>
<% end %>
简而言之,您需要指定字段名称,如:
<%= email_address.column_name %>