Rails 4:has_many通过关联不工作 - 棘手的关联键处理

时间:2014-11-14 01:24:01

标签: ruby-on-rails has-many-through

更新的问题:

注意:远程数据库中的组织表(可能是问题的根源)

通过关联的has_may无效,无法找出原因。希望有人能够发现问题。

公司模型(本地数据库中的公司表)

has_many :locations, class_name: "Org", primary_key: :name, foreign_key: :c_name
has_many :reviews, through: :locations

组织模型(远程数据库中的组织表,使用establish_connection来访问它)

belongs_to :company, primary_key: :name, foreign_key: :c_name
has_many :reviews, primary_key: :key, foreign_key: :location_id

审核模型(本地数据库中的评论表)

我想这样做:

company.reviews.count

但它失败了,因为它试图在本地数据库上达到orgs表,当然,无法找到它。 company.locations.count正如预期的那样工作正常。

2 个答案:

答案 0 :(得分:0)

尝试将组织模型的第一个belongs_to行更改为:

belongs_to :c_name, class_name: 'Company'

答案 1 :(得分:0)

只需更改

has_many :reviews, through: :locations, class_name: "Org"

has_many :reviews, through: :locations

或者如果模特的班级不是Review,那么

has_many :reviews, through: :locations, class_name: "MyAwesomeReviewModelClass"