2016-05-14 42 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'。

相关问题