ruby-on-rails – belongs_to不使用主键选项

前端之家收集整理的这篇文章主要介绍了ruby-on-rails – belongs_to不使用主键选项前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我一直在努力解决这个问题,并决定把它扔出去:

我有3个型号,用户,连接,可疑

用户有很多连接,
Connection有一个Suspect,通过case_id链接

用户通过其连接有许多嫌疑人.

代码如下:

class User < ActiveRecord::Base
  has_many :followers
  has_many :suspects,:through => :followers
end

class Connection < ActiveRecord::Base
  belongs_to :user
  belongs_to :suspect,:primary_key => :case_id,:foreign_key => :case_id
end

class Suspect < ActiveRecord::Base
  belongs_to :connection,:foreign_key => :case_id
end

问题是belongs_to似乎忽略了:主键.

如果我做

u = User.find(:first)
u.suspects

生成sql是:

SELECT `suspects`.* FROM `suspects` INNER JOIN `connections` ON `suspects`.id = `connections`.case_id WHERE ((`followers`.user_id = 1))

但它应该是:

SELECT `suspects`.* FROM `suspects` INNER JOIN `connections` ON `suspects`.case_id = `connections`.case_id WHERE ((`followers`.user_id = 1))

有人能指出我正确的方向吗?

詹姆士

解决方法

belongs_to的文档说你可以使用:primary_key选项,但我们从来没有能够使它工作.据说最新版本的rails 2.3.3具体为 fix for this
原文链接:https://www.f2er.com/ruby/268508.html

猜你在找的Ruby相关文章