2016-05-14 32 views
0

使用軌道4中的應用程序發票客戶端作爲模型 - 我已經設置了它們之間的關聯,您可以在兩個模型的片段中看到,但無法實現如何顯示發票顯示視圖​​中的Client.name。如何在不同模型的/顯示中顯示不同模型中的參數?

通過Rails的控制檯,如果我做「Invoice.last.client.name」 - 我可以看到客戶的名字 - 但一旦我嘗試顯示認爲同樣的事情這段代碼:

<% @invoices.each do |invoice| %> 
    <%= invoice.client.name %> 
    <% end %> 

我得到零此錯誤未定義的方法`名」:NilClass

Invoice.rb(型號)

class Invoice < ActiveRecord::Base 
    belongs_to :client 
    acts_as_schedulable :schedule 

    # accepts_nested_attributes_for :clients 

end 

Client.rb(型號)

class Client < ActiveRecord::Base 
    has_many :invoices 
    validates_formatting_of :email, using: :email 
end 

試圖添加嵌套屬性並在Invoice控制器中添加'name'方法,但不知道我做錯了什麼。欲瞭解更多的參考,我已經包含在this pastebin link.

def name 
    @invoice = Invoice.client.name 
    end 

回答

0

整個發票控制器這可能是因爲您有沒有客戶發票瞬間。我首先在控制檯確認所有的發票都有客戶,例如

Invoice.all.reject{|invoice| invoice.client}.count 

如果答案不是零,那就是你的問題。

此外,您發佈的名稱方法不正確,會引發錯誤。您在Invoice類中調用類方法'client'。

相關問題