使用Invoices和Vat(两个模型)之间的关联处理项目。每次我尝试通过控制台获取Vat的值,如@ Invoice.last.vat.amount,我得到消息Rails关联 - NoMethodError:未定义的方法
我想我已经正确完成了迁移,但不知怎的,我忽略了一些东西:
我的模特:
class Vat < ActiveRecord::Base
belongs_to :invoice
end
class Invoice < ActiveRecord::Base
has_many :vats
belongs_to :client
end
我的迁移:
对于发票
class CreateInvoices < ActiveRecord::Migration
def change
create_table :invoices do |t|
t.datetime :issue_time
t.integer :total
t.integer :vat
t.string :item
t.string :currency
t.references :client, index: true
t.timestamps
end
end
end
对于增值税
class CreateVats < ActiveRecord::Migration
def change
create_table :vats do |t|
t.integer :amount
t.string :name
t.timestamps
end
end
end
以及稍后修改将增值税添加到发票:
class AddVatToInvoices < ActiveRecord::Migration
def change
add_reference :invoices, :vat, index: true
end
end
然而,你几乎就在那里
1)你设置你的发票has_many大桶,意味着你需要调用大桶,即Invoice.last.vats
2)我没有看到数量,但我知道数量。所以你想做Invoice.last.vats.count
。
请享用!