私はこれに関する複数の質問を読んだが、私の状況に適した答えはまだ見つけていない。 Apps
、AppsGenres
ここでGenres
has_many:through外部キー?
がそれらのそれぞれから適切なフィールドです:
は、私は3つのモデルを持っている
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
を、ここで私は最終的に必要とするクエリです:UPDATED
@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を得ているの? – Rebitzele