前提・実現したいこと
Railsで
@users = User.eager_load(:subscribes)
のように結合を行い、@users.subscribes.channnel_f
といった形で子テーブルのデータをcontrollerやviewに参照したいができない。
viewで表示する場合、ブロック内で@users.subscribes.channnel_f
rb
1@users.each do |user| 2 <%= user.subscribes.channnel_f %> 3end
のように表示したいのと、処理が重くなるためブロック内でSQLを発行したくない。故に事前に結合を行い、結合テーブルを変数に入れ、値を参照したい。
試したこと
①@user.subscribes.methodsでsubscribesメソッドの一覧を表示したが
→channnel_fが存在しない
②Railsで@users = User.eager_load(:subscribes)
を実行するとログに出てくるSQL文を、GUIで実行した。
→結果を見ると結合自体はできている。このことから、@users.subscribes.channnel_f
を行えば値を参照できるはずなのにできない。おかしい
③eager_loadが悪いのか?と思ったので、joinsやincludesなど思いつく結合に関するメソッドを実行
→②と結果は同じ。
方法などございますでしょうか?ご教示頂けると幸いです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。