問題タブ [ruby-on-rails-5.1]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
160 参照

ruby-on-rails - Rails 5.1 has_many から関連フィールド

(下のスキーマ画像の例を参照)

テーブルの&フィールドとともにusers、フィールドを使用して、テーブルから 1 人のユーザーをクエリしようとしています。結果には、見つかったユーザー (存在する場合) と、アプリケーション ( &フィールドを使用して参照) および関連データが含まれます。emailidkeyapplicationskeyidapplications_users

スキーマの例

この操作を実行するために SQL を手動で簡単に記述できます。

ただし、ActiveRecordを使用すると、一生クエリを正しく取得できません。

これらは、これまでに行った失敗した試みです。

これはユーザーを正しく取得しますが、アクセスしようとするとRailsは2番目のSQLクエリを実行しますuser.applications(また、ユーザーに関連付けられたすべてのアプリケーションを返すため、id&key条件を無視しているように見えます)

これにより、ユーザーと正しいアプリケーションが正しく取得されます (イェイ!)。しかし、Rails を呼び出そうとすると、2 つ目の SQL クエリが実行されますuser.applications_users。また、テーブル内のすべてのデータのコレクションが返されます (ここでも&条件applications_usersは無視されます)。idkey

これで正しいユーザーが取得されますが、アクセスしようとすると Rails は別の SQL クエリを実行し、user.applicationsすべてのアプリケーションも返します。

とにかく、うまくいけば、Rails の天才がこの質問に光を当てることができます! 私が Rails の専門家ではないことを最初に認めます。私は過去 10 年間、PHP と C++ でプロとしてのキャリア コー​​ディングを行ってきました。