ActiveRecord :: StatementInvalid在呈现xml和使用:include方法时,列名无效

时间:2012-05-22 09:46:20

标签: ruby-on-rails xml activerecord

我正在使用rails 2.3.4,rubygems 1.8.24,mac os x lion和ruby 1.9.3

我正在尝试将xml渲染到名为invoice的对象。现在,我将invoice与invoice_detail相关联,所以在我的render:xml中我写道:

format.xml  { render :xml => @invoice.to_xml(:include => :invoice_detail) }

但发生错误:ActiveRecord :: StatementInvalid列名'invoice_id'无效

我的数据库中没有invoice_id列,现在我想让rails了解这一点。我希望它查看inventoryDocId列,而不是查找不存在的invoice_id列。我怎么做?非常感谢你。

1 个答案:

答案 0 :(得分:1)

创建模型invoice_detail时,必须指定外键列:

class InvoiceDetail < ActiveRecord::Base
  belongs_to :invoice, :foreign_key => "inventoryDocId"
end

您在这里有belongs_to选项:http://api.rubyonrails.org/classes/ActiveRecord/Associations/ClassMethods.html#method-i-belongs_to