0

Railsアプリケーションに次のモデルがあります。

class Address < ActiveRecord::Base
  belongs_to :addressable, :polymorphic => true
end

class Client < ActiveRecord::Base
  has_one :address, :as => :addressable, dependent: :destroy
  accepts_nested_attributes_for :address, :allow_destroy => true

  has_many :invoices
end

class Invoice < ActiveRecord::Base
  belongs_to :client
end

を使用してクライアント名を取得できますが、

@invoice.client.name 

同様の方法でアドレス情報を取得できません。

請求書のビューで住所属性を取得するにはどうすればよいですか?

4

1 に答える 1

0

@invoice.client.addressが答えです。ただし、メソッドデリゲートを使用してデメテルの法則に従うことをお勧めします

http://en.wikipedia.org/wiki/Law_of_Demeter
http://api.rubyonrails.org/classes/Module.html#method-i-delegate

基本的には、@invoice.client.address_street またはより良い @invoice.client_address_street を実行できるという考えです。

于 2013-10-18T20:12:21.477 に答える