Rails关联 - NoMethodError:未定义的方法

问题描述 投票:0回答:1

使用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
ruby-on-rails
1个回答
1
投票

然而,你几乎就在那里

1)你设置你的发票has_many大桶,意味着你需要调用大桶,即Invoice.last.vats

2)我没有看到数量,但我知道数量。所以你想做Invoice.last.vats.count

请享用!

© www.soinside.com 2019 - 2024. All rights reserved.