【问题标题】:One-to-one association一对一关联
【发布时间】:2017-06-20 08:52:56
【问题描述】:

我有两个模型,我想将它们显示在一个表格中。

模型 1:

class Name < ActiveRecord::Base
  has_one :employer, :foreign_key => 'application_id'
end

模型 2:

class Employer < ActiveRecord::Base
  belongs_to :name, :foreign_key => 'application_id'
end

控制器:

def summary
    @name = Name.all
end

我认为这是:

<% @name.each do |e| %>
 <tr>
   <td ><%= e.application_id %></td>
   <td ><%= e.Name_of_employee%></td>
   <td ><%= e.Employer_name%></td>
 </tr>
<% end %>

这个名字只有一个雇主。 我收到“未定义的方法‘Employer’# "

TYIA!

【问题讨论】:

  • namesemployers 表中的属性是什么?您必须显示属性/关联名称而不是 Classname
  • 你的foreign_keyapplication-id还是application_id
  • 它是 application_id,只是一个错字。我会编辑。谢谢!
  • 不要改变原来的问题!

标签: ruby-on-rails model controller associations


【解决方案1】:

随着关联的定义,

has_one :employer, :foreign_key => 'application-id'

注意employer的大小写,所以它必须是小写,而不是类名

<td ><%= e.employer.name %></td> # name or some other attribute you wish to display

此外,首先包括关联将有助于消除n+1

@name = Name.includes(:employer)

【讨论】:

    猜你喜欢
    • 2013-06-07
    • 2017-12-08
    • 2014-06-24
    • 2015-02-01
    • 2015-01-26
    • 2015-06-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多