2016-05-14 10 views
0

の納品書のお客様ののモデルのレール4での作業 - 両方のモデルの下のスニペットに示されているように、既にそれらの間の関連付けを設定していますが、請求書の表示ビュー内のClient.name。 Railsのコンソールを介して異なるモデルの/ show内の異なるモデルのパラメータを表示するにはどうすればよいですか?

、私は「Invoice.last.client.name」を行う場合 - 私はクライアント名を見ることができます - しかし、私は、コードのこの部分とビューのそれと同じことを示そう一度:

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

私がnilのために、このエラー未定義のメソッド `name」を取得: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 

は、ネストされた属性を持つ何かをし、請求書コントローラに「名前」メソッドを追加する追加しようとしましたが、私が間違ってやっているのか分かりません。より多くの参考のために、私はthis pastebin link.

def name 
    @invoice = Invoice.client.name 
    end 

答えて

0

で全体のインボイスコントローラが含まれているそれはあなたがクライアントなしで請求書の瞬間を持っている可能性があります。コンソールから、すべての請求書にクライアントがあることを確認することから始めます。

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

答えがゼロでない場合は、それが問題です。

また、送信した名前のメソッドが正しくないため、エラーが発生します。 Invoiceクラスのクラスメソッド 'client'を呼び出しています。

関連する問題