Runners
、Jobs
、およびの3 つのモデルがありSurveys
ます。Runner
モデルのおhas_many
仕事。Job
モデルhas_one
Survey
。_ ランナーのすべての調査 (特定のランナーに属するジョブに関連付けられているすべての調査) を取得しようとしています。
ここに私のモデルがあります
runner.rb
class Runner < ActiveRecord::Base
has_many :jobs
end
ジョブ.rb
class Job < ActiveRecord::Base
belongs_to :runner
has_one :survey
end
調査.rb
class Survey < ActiveRecord::Base
attr_accessible :service, :speed, :suggestion, :job_id
belongs_to :job
end
ランナーのすべてのジョブを取得するために、Rails コンソールを開いて、次のようなコマンドを実行してみました。
runner = Runner.first
joined_table = Job.joins(:survey)
joined_table.where(runner_id: runner.id)
これは正しい SQL を出力しているように見えますが、joined_table を実行するたびに return back が実行されるだけJob.all
です。Job と Survey の結合テーブルは返されません。私も次のことを試しました
joined_table = Job.all(:include => :survey)
joined_table = Job.all(:select => '*', :joins => :survey)
joined_table = Job.all(:joins => :assignment, :include => :survey)
これら3つのいずれも機能しません