test というネームスペース内にモデルやコントローラをおいているのですが
includes がうまく動かず引数何をかけばいいのかよくわかりません
table 名は
test_groups test_group_users
で
モデルは
module Test class Group has_many :group_users, class_name: Test::GroupUser, foreign_key: :test_group_id
という感じで groups が group_users を has_many でもっている関係です
コントローラー内で Group から子テーブルを参照しようと
Test::Group.includes(:group_users) .select('test_group_users.id')
Test::Group.includes(:test_group_users) .select('test_group_users.id')
のようにかいてもいずれも
Mysql2::Error: Unknown column 'test_group_users.user_id' in 'field list': SELECT test_group_users.user_id FROM `test_groups`
となって出力されるSQLをみても includes による Join 自体が実行されません
原因がわかる方いらっしゃいましたら助けていただけるとありがたいです
追記:
namespace を最近はじめて使ったのですが
なれていなくていろいろなところでよくあるブログ記事のコードが動かなかったりするので
何がどう変わるか一覧まとめみたいなのがあると助かるのですが…
あまりに自動でやってくれるブラックボックスな部分が多くて
普段は意識しなくてすむんですがネームスペースを使っただけで
テーブル名なのかモデル名なのかアソシエーションなのかファイル名なのか
何が何をみているか把握してないと動かなくて苦労します…
あなたの回答
tips
プレビュー