以上のようなリレーションを持ったテーブルがあります。
このテーブルの関連付けは以下のように行っております。
#今回該当しないテーブルのリレーションを省いています class TWork < ApplicationRecord has_many :t_applicants end class TWorksuccess < ApplicationRecord belongs_to :t_applicant, optional: true has_one :t_applicant end class TApplicant < ApplicationRecord belongs_to :t_work has_one :t_worksuccess end
t_worksというテーブルは複数の応募者を持ちます。
この応募者は仕事成約テーブルの1:1のリレーションになっております。
この時、t_worksuccessモデルから以下の様にt_workテーブルを持っていきたいのですが上手くいきません。
#t_worksuccess.rb def show_success_works(user_id) TWorksuccess.includes(:t_applicant).includes(:t_works) .where(job_applicantid: user_id) end
#t_worksuccesses_controller worklist = TWorksuccess.new @success_worklist = worklist.show_success_works(params[:id])
prybyebugで確認すると@success_worklistの中身は空であった為、
TWorksuccess.includes(:t_applicant).includes(:t_works)
この箇所がおかしいのかなと感じました。(controllerに書いてあるparams[:id]の部分はしっかりと値が飛んできています)
以上のER図のようなリレーションだったとしてモデルクラスに書いてあるActiveRecord関連付けのやり方はあっていますでしょうか?
またincludesでリレーションのあるテーブルを取ってきている部分をどの様に書けばうまく欲しい値を取ってこれますでしょうか?
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。