私は 3 つのモデルを持っています。製品、税金、場所。製品が作成されるたびに、税金がある場合はその場所の最新の税金を割り当てたいと思います。
class Location < ActiveRecord::Base
belongs_to :user
has_many :products
has_many :taxes
end
class Tax < ActiveRecord::Base
attr_accessible :date # I use this to get the latest tax
belongs_to :location
has_many :products
end
class Product < ActiveRecord::Base
attr_accessible :tax_id
belongs_to :location
belongs_to :tax
end
今、私は自分のProduct
モデルでこれを試しました:
after_create :assign_latest_location_tax
private
def assign_latest_location_tax
if self.location.tax.present?
self.tax_id = self.location.tax.order("date DESC").first.id
end
end
しかし、これは私にエラーを与えます:
NoMethodError in ProductsController#create
undefined method `tax' for #<Location:0x4669bf0>
これを行う正しい方法は何ですか?