問題タブ [polymorphic-associations]

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 投票する
3 に答える
5170 参照

ruby-on-rails - ActiveRecord でのポリモーフィック アソシエーションのイーガー ロード

Rails を使用するのはこれが初めてで、1 つの SQL クエリで has one ポリモーフィック アソシエーションをロードできるかどうか疑問に思っていました。モデルとそれらの間の関連付けは十分に基本的なものです。アセット モデル/テーブルは、ポリモーフィックな関連付けを通じてコン​​テンツ (画像、テキスト、またはオーディオのいずれか) を参照できます。

Image、Text、Audio は次のように定義されます。

画像を読み込もうとすると、次のように言います。

2 つのクエリを指定します。1 つはイメージを取得するためのもので、もう 1 つはアセットを取得するためのものです (参考までに、これは を指定した場合にも発生します:joins)。私の理解では、ActiveRecord がこれを行うのは、Image と Asset の間に 1 対 1 の関連付けがあることを認識していないためです。強制的に結合して 2 つのオブジェクトを一度に取得する方法はありますか? また、カスタム選択で結合を使用してみましたが、ActiveRecord モデルとその関連付けを手動で作成する必要があります。

ActiveRecord はこれを行う方法を提供していますか?

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

ruby-on-rails - Railsでの多形関連の問題

Ryan Batesのスクリーンキャストをフォローしようとしていますが、エラーメッセージが表示されます。私は次のことをしました:

1)テーブルを作成する

2)セットアップモデル

3)コントローラーの表示アクションを変更します

4)テンプレートviews / category/show.html.erbにフォームを追加します

5)その後、/ category/my-category-permalinkにアクセスしてエラーメッセージが表示されます

私が間違ったことを理解するのを手伝ってくれませんか。元のスクリーンキャストでは、ライアンはネストされた関連付けを使用して/ category / permalink / reviewsによってコメントにアクセスしますが、私はそれを必要としません。ポリモーフィックオブジェクトから直接コメントを書きたい。ありがとう

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

ruby-on-rails - ポリモーフィックなネストされたフォームは AssociationTypeMismatch になります

モデル:


ディーラーコントローラー:


エラーメッセージ:

ActiveRecord::AssociationTypeMismatch in Admin/dealersController#create User(#41048900) が予想され、取得した HashWithIndifferentAccess(#23699520)

リクエスト パラメータ:

私の問題は、Rails がリクエスト ハッシュ内の "user" ハッシュを User オブジェクトに変換しないことだと思います。

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

ruby-on-rails - スーパーがサブクラスの FK である場合、db でポリモーフィックな関連付けを設定しますか?

クラス テーブルの継承を使用して、サブクラスがスーパークラスを参照することをお勧めします。その逆ではありません。通常、Rails では、ポリモーフィックな関連付けは逆方向に機能します。つまり、スーパーはサブクラスを参照します。

おすすめされた

典型的な Rails ポリモーフィック アソシエーション

推奨されるアプローチで私が気に入っているのは、一致しないキーをなくすことができることです。つまり、特定の車とそのビークル スーパーは同じ ID を共有します。

私の特定の例では、複数の継承をサポートする可能性があるため、たとえば、乗用車とボートのハイブリッド車を作成できます。

質問:

  • ActiveRecord の関連付けをどのように設定しますか...

    • 車両がサブクラスを 1 つしか持てないとしたら?

    • 車両が多くのサブクラスを持つことができるとしたら? (ここで私が目にする問題は、特定の subclass_type を指定しないことによって、どのテーブルにヒットするかをアソシエーションがどのように知るかということです。私はそれらがヒットするとは思わないので、可能なすべてのテーブルにヒットしなければならないでしょう。したがって、おそらく交差テーブルがここで役立ちます. )

  • これは ActiveRecord で使用するのに適した設計パターンですか?それとも、Rails のやり方に逆らって避けるべきでしょうか?

0 投票する
3 に答える
403 参照

ruby-on-rails - 2つの異なる方法で相互に関連する2つのモデル間のActiveRecord関係を定義するにはどうすればよいですか?

私のアプリには、ユーザー、ビデオ、投票のクラスがあります。ユーザーと動画は、1対多または多対多の2つの異なる方法で相互に関連付けることができます。前者は、ユーザーが動画を送信する場合です(1人のユーザーが多数の動画を送信できます)。後者は、ユーザーがビデオに投票する場合です(ユーザーは投票を通じて多くのビデオを持っており、その逆も同様です)。これが私のコードですが、機能しません(私は、ビューで何か間違ったことをしている可能性があると思います)。これらの関連付けを構成する正しい方法を理解するのを手伝ってください。

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

ruby-on-rails - 準STIオブジェクトに属するポリモーフィックオブジェクト:object_typeが正しくありません

検討:

編集:私はそこでしばらく混乱しました。これは実際にはSTIではなくEmployee、独自のテーブルがあるため、単なる継承です。

ありがとう!

0 投票する
2 に答える
4925 参照

mysql - 動的外部キー - 実装方法

単一のテーブルの (メンバー) 列に相互参照したい 4 つのテーブル (任命、クラス、選出、ステータス) があります。4 つのテーブルの値は、履歴テーブル (members_history) に基づいて時間依存です。望ましい結果は、クエリがすべてのメンバーと、メンバー行内の現在の任命された役職または現在の選択された役職、クラス、およびステータスを出力し、外部行から取得した追加情報を含めることです。

したがって、単に返す代わりに:

ID、ユーザー名、パスワード、ソルト、name_first、name_last、date_join、date_leave;

クエリは返されます

ID、ユーザー名、パスワード、salt、name_prefixname_first、name_last、 date_join 、hours_extradate_leave 、、、& ;appointedclasselectedstatus

追加された列が履歴に現在の値を持っていない場合は常に、その結​​果は NULL になります。

サブクエリでこれを行うことができると思いますが、これまでキーボードに頭をぶつけていました。後でもう一度試してみますが、それまでは、試してくれる人、または私を正しい方向に向けようとする人はいますか?

私のSQL(しゃれは意図されていません)テーブルの構造は次のとおりです。

members_history.mid は members テーブルの id の FK であり、すべてのメンバーが履歴を持っているわけではありません (ただし、すべてのメンバーがクラスとステータスを持っている必要があるため、最終的にはすべてがそうです)。members_history.valueの FK ですmembers:{members_history.table}.id

0 投票する
3 に答える
21421 参照

ruby-on-rails - ActiveRecord、has_many :through、ポリモーフィック アソシエーション

皆さん、

これを正しく理解していることを確認したい。ここでは継承のケース (SentientBeing) を無視してください。代わりに has_many :through リレーションシップのポリモーフィック モデルに注目してください。とはいえ、次のことを考慮してください...

完璧な世界では、Widget と Person を指定して、次のようなことをしたいと思います。

ただし、これを行うと、widget_groupings で「グルーパー」の「タイプ」が常に null であることに気付きました。ただし、次のような場合:

その後、すべてが通常どおりに機能します。これが非ポリモーフィック アソシエーションで発生するのを見たことがないと思います。これがこのユース ケースに固有のものなのか、それとも潜在的にバグを見つめているのかを知りたかっただけです。

助けてくれてありがとう!

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

ruby-on-rails - Rails のポリモーフィックな関係の逆方向

次のようにポリモーフィックな関係を設定しました。

Wine.last.reviews や Beer.find(3).reviews などを実行できます...

私が苦労しているのは、別の方向に進むことです。つまり、Wine の最新の 10 件のレビューと Beer の最新の 10 件のレビューを見つけたいとしましょう。

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

ruby-on-rails - Rails のポリモーフィック アソシエーション

ポリモーフィックな関連付け (提案) に属するモデル (選択肢) がある場合、関連付けられた提案を選択肢のフォームで作成することはできますか?

基本的に、私がやろうとしているのは、ユーザーが投票で「選択肢」を作成できるようにすることです。潜在的な提案は事前定義された会場、都市、または地区ですが、カスタムの自由形式の提案 (テキストのみ) のオプションも許可します。であり、データベースに存在する定義済みのエンティティではありません)。Venues/Cities/Districts の場合、ユーザーに選択オプションを提供して Choice を関連付けるだけで十分簡単ですが、CustomSuggestion がその場でそれを作成して Choice を関連付けることは可能ですか?

私が本当に欲しいのは、関連付けを has_one CustomSuggestion にして、関連付けを構築できるようにすることだと考えていましたが、それでは、begs_to :suggestion, :polymorphic => true とは異なる関連付けになります。

何か案は?

ありがとう、エリック