使用发票和客户端作为模型的rails 4中的应用程序 - 我已经设置了它们之间的关联,如下面两个模型的片段中所示,但无法实现如何在Invoice show视图中显示Client.name。
通过Rails控制台,如果我做了Invoice.last.client.name' - 我可以看到客户端名称 - 但是一旦我尝试用这段代码在视图中显示相同的东西:
<% @invoices.each do |invoice| %>
<%= invoice.client.name %>
<% end %>
我收到此错误未定义方法`name&#39;为零:NilClass
Invoice.rb(Model)
class Invoice < ActiveRecord::Base
belongs_to :client
acts_as_schedulable :schedule
# accepts_nested_attributes_for :clients
end
Client.rb(Model)
class Client < ActiveRecord::Base
has_many :invoices
validates_formatting_of :email, using: :email
end
尝试添加嵌套属性并添加&#39;名称&#39;发票控制器中的方法,但不知道我做错了什么。为了更多参考,我在this pastebin link.
中包含了整个发票控制器 def name
@invoice = Invoice.client.name
end
答案 0 :(得分:0)
可能是您没有客户的发票即时。我首先要在控制台中确认所有发票都有客户,例如
Invoice.all.reject{|invoice| invoice.client}.count
如果答案不为零,那就是你的问题。
您发布的名称方法也不正确,会引发错误。您正在拨打课程方法&#39;客户&#39;在发票课上。