2017-06-20 61 views
-1

我有兩個模型,我想在一個表中顯示它們。一對一關聯

模型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 %> 

這個名字只有一個僱主。 我得到「未定義的方法僱主」# 「

TYIA!

+0

「names」和「employer」表中的屬性是什麼?你必須顯示屬性/關聯名稱而非*類名* – Pavan

+0

你的'foreign_key'是'application-id'還是'application_id'? – Pavan

+0

它是application_id,只是一個錯字。我會編輯。謝謝! – Aurb

回答

3

爲協會的定義,

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)