我收到此错误:RuntimeError:未知的绑定列。我们可以说明这一点。
我在Rails 4.1上并连接到SQL SERVER 2005。
这是我根据数据库为Job模型设置的内容。
class JobTable < ActiveRecord::Base
self.table_name = "JobTable"
self.primary_key = "JobId"
has_many :job_products
end
这是我根据数据库为产品型号设置的内容。
class JobProduct < ActiveRecord::Base
self.table_name = "JobProduct"
self.primary_key = "ItemId"
belongs_to :job_table
end
两个主键都是数据库中的字符串。
我正在尝试执行JobTable.first.job_products,我收到了这个错误。知道为什么吗?
感谢。任何帮助表示赞赏。
答案 0 :(得分:1)
我对此事的想法是你需要在两个表上指定你指的是哪个外键。当你说has_many :job_products
时会假设一些事情,其中两个是模型(class_name)将被称为Job_product
,并且该表上的记录将拥有名为{{1}的外键}。
因此,为了解决您的问题,我会尝试以下方法:
job_table_id
class JobTable < ActiveRecord::Base
...
has_many :job_products, class_name: 'JobProduct', foreign_key: 'JobId'
...
end
答案 1 :(得分:0)
您可能需要在class_name
上指定belongs_to
,并在两个型号上指定foreign_key
。我不确定如何做到这一点,但这是一个例子:
https://www.bountysource.com/issues/6429700-runtimeerror-unknown-bind-columns-we-can-account-for-this
User.rb
has_many :filings, foreign_key: 'owner_id'
Filing.rb
belongs_to :owner, class_name: 'User', foreign_key: 'owner_id'
请务必参阅Ruby on Rails Guides自我加入部分。
我希望有所帮助!如你所说,任何帮助表示赞赏: - )。