【发布时间】:2013-04-19 19:48:02
【问题描述】:
我已经阅读了多个关于此的问题,但尚未找到适合我情况的答案。
我有 3 个模型:Apps、AppsGenres 和 Genres
以下是每个字段的相关字段:
Apps
application_id
AppsGenres
genre_id
application_id
Genres
genre_id
这里的关键是我不使用这些模型中的 id 字段。
我需要根据application_id 和genre_id 字段关联表。
这是我目前得到的,但没有得到我需要的查询:
class Genre < ActiveRecord::Base
has_many :apps_genres, :primary_key => :application_id, :foreign_key => :application_id
has_many :apps, :through => :apps_genres
end
class AppsGenre < ActiveRecord::Base
belongs_to :app, :foreign_key => :application_id
belongs_to :genre, :foreign_key => :application_id, :primary_key => :application_id
end
class App < ActiveRecord::Base
has_many :apps_genres, :foreign_key => :application_id, :primary_key => :application_id
has_many :genres, :through => :apps_genres
end
作为参考,这是我最终需要的查询:
@apps = Genre.find_by_genre_id(6000).apps
SELECT "apps".* FROM "apps"
INNER JOIN "apps_genres"
ON "apps"."application_id" = "apps_genres"."application_id"
WHERE "apps_genres"."genre_id" = 6000
【问题讨论】:
-
你现在得到什么 SQL?
标签: ruby-on-rails foreign-keys associations has-many-through