Rails SQL SERVER:RuntimeError:未知的绑定列。我们可以解释这一点

时间:2015-09-22 03:46:39

标签: ruby-on-rails sql-server

我收到此错误: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,我收到了这个错误。知道为什么吗?

感谢。任何帮助表示赞赏。

2 个答案:

答案 0 :(得分:1)

我对此事的想法是你需要在两个表上指定你指的是哪个外键。当你说has_many :job_products时会假设一些事情,其中​​两个是模型(class_name)将被称为Job_product,并且该表上的记录将拥有名为{{1}的外键}。

因此,为了解决您的问题,我会尝试以下方法:

模型/ JobTable.rb

job_table_id

模型/ JobProduct.rb

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自我加入部分。

我希望有所帮助!如你所说,任何帮助表示赞赏: - )。