我有两个模型设立这样的:

class User < ActiveRecord::Base
  # external_id column in database
end

class UserUpload < ActiveRecord::Base
  belongs_to :user, :primary_key => "external_id", :foreign_key => "external_user_id"
end

然而,只要我做的

upload = UserUpload.find(id, :include => :user)

Sql,获取发出的是一直在寻找ID(和使用零):

select * from users where id in (0,0,0,0 ... 0,0)

我在做的事情是错误的,或者是有一个问题,使用 foreign_keys 在一个 belongs_to 的关系 include?

有帮助吗?

解决方案

我刚刚碰到这个同样的问题。还有一个 补丁 这适用于轨2.3.5上 错误#3208 但它还没有被应用到 2-3个稳定 分。

我已经创建了一个 猴子补丁 这个错误,因为它是造成性问题在我的应用程序。的地方 fix_belongs_to_include_with_primary_key.rb 在你 config/inititalizers 目录,并重新启动程序申请。

其他提示

我不知道为什么,但选择 :includenamed_scopebelongs_toforeign_key 工作。

named_scope :my_all, :include => :user
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top