問題タブ [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 投票する
1 に答える
323 参照

ruby-on-rails - Rails ポリモーフィック アソシエーション、1 つのクラスに 2 つのアソシエーション タイプ

クラスを考えてみましょう:

@link.link_votes << Vote.new問題は、vote_subject_typeisを使用して新しい投票を追加するとき、またはそのようなもの'Link'になりたいと思って'link_votes'いることです。これは AR の制限ですか、それとも回避する方法はありますか?

私は実際に1つの関連する答えを見つけましたが、それが何を言っているのかよくわかりません:同じモデルで複数の関連付けを持つポリモーフィックな関連付け

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

ruby-on-rails - Rails ポリモーフィック アソシエーション (レガシー データベース)

私はレガシー データベースを使用しているため、データモデルを制御できません。このように、多くの多態的なリンク/結合テーブルを使用します

obj_nameテーブル名、obj_r_identは識別子です。したがって、リンクされたレポートは次のように挿入されます。

そして、人物 1 は 2 つのリンクされたレポート (1 と 2) を持つことになります。

このようなデータモデルを使用する利点は理解できますが、大きな欠点が 1 つあります。データの整合性を確保するために制約を使用することはできません。しかし、残念ながら、これを変更することはできません。

しかし、これをRailsで使用するために、ポリモーフィックな関連付けを調べていましたが、これを解決する良い方法が見つかりませんでした(列名を変更できず、それを行う方法がすぐに見つからなかったため)。

しかし、私は解決策を思いつきました。提案を提供してください。

これは機能しますが、ポリモーフィックな関連付けを使用して、より良い解決策があるのではないかと思います。

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

mysql - MySQL - 条件付き外部キー制約

アプリに次のcomments表があります。

このテーブルのアイデアは、アプリのさまざまな部分のコメントを保存することです-ブログ投稿のコメントを保存できます。

ユーザー画像:

等々。

今、そのようなデータに FOREIGN KEY 制約を強制する方法はありますか?

つまり、コメント テーブルに次のようなものがあります。

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

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

ポリモーフィックなモデル Report があります。私のサイトの非常に多くの itens には、その多くが含まれている可能性があります。

そして、それを投稿するための汎用コントローラーが必要です。非常に単純なモデルで、テキスト メッセージと関連付けのみが含まれます。

私のルートでは、私は次のようなことをしています

しかし、私のreports_controllerでは、関係を取得したいと思います。

お気に入り:

これは可能ですか?

reportable_class と reportable_id を取得するにはどうすればよいですか?

ユーザーコントローラーからの場合は params[:user_id] を、投稿からの場合は params[:post_id] を取得できます。私はすべての関係でケースを実行できますが、それはまったくきれいな解決策ではないようです...

ポリモーフィックな関連付けを持つことが最善ですが、方法はありますか?

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

ruby-on-rails - ActiveRecord :: EagerLoadPolymorphicError:ポリモーフィックアソシエーションを熱心にロードできません

アカウントがアクティブな場所でトランザクションの合計を実行しようとしています。

それで、いくつか読んだ後、私はこれに出くわしました:理由は、親モデルのタイプが列値であるため、対応するテーブル名をそのクエリのFROM/JOIN句に入れることができないためです。テーブル名は銀行口座とクレジットカードですが、それはそれらが単数であるべきだという意味ですか?また、account_typeは、モデルを反映するためのBankaccountまたはCreditcardのいずれかの文字列ですが、代わりにテーブル名にする必要がありますか?

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

ruby-on-rails - Rails ポリモーフィック アソシエーション - 検証エラーが発生すると、親がフラッシュ メッセージ付きのアクションを表示する

記事、プロフィール、コメントがあります。記事/プロフィールとコメントの間には、コメント可能と呼ばれるポリモーフィックな関連付けがあります。

新しいコメントの作成に成功すると、成功フラッシュでコメント可能な親オブジェクトに戻り、検証エラーの適切なエラーフラッシュで同じことをしたいと思います。

レンダリングするには何を渡す必要がありますか?

コメント可能なクラス名を取得して小文字にすることでパスを作成できると思いますが、それは厄介なようです。

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

language-agnostic - ERD(テーブル)設計で「OR」関係を処理する方法は?

私は個人プロジェクト用の小さなデータベースを設計しています。テーブルの1つ、それをテーブルと呼びC、2つのテーブルの1つへの外部キーを持っている必要があり、それらAを呼び出しB、エントリが異なります。これを実装するための最良の方法は何ですか?

これまでのアイデア:

  • 2つのテーブルに接続する2つのnull許容外部キーフィールドを使用してテーブルを作成します。
    • おそらく、挿入と更新を拒否するトリガーがあり、そのうちの0または2がnullになります。
  • 同一のデータを持つ2つの別々のテーブル
    • これは、データの複製に関する規則に違反します。

この問題を解決するためのよりエレガントな方法は何ですか?

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

ruby-on-rails - has_many を使用したポリモーフィック モデル コントローラー パスの構築

多くの種類のコメント可能に関連付けることができる多態性モデル Comment があります。私のルートでは、例えば、私は持っています:

すべてが正常に機能していますが、唯一の問題はパスを生成することです。ビュー/コントローラーに、before_filter から取得した @commentable アイテムがあります。

[@commentable, @comment] へのリンクは、フォーム、表示、または破棄のように正常に機能します。しかし、新規および編集へのリンクはめちゃくちゃです...たとえば、comments_path(@commentable, @comment) は機能しません。

ビューでこの動的パスを構築するにはどうすればよいですか?

特に edit_ パスと new_ パス

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

database - 1つを除くすべてがNULLである外部キーのセット

特定の行で1つを除くすべてがNULLであるテーブルで、外部キーのセットを使用する手法の名前は何ですか?

言い換えると、各行にはn個の異なる可能なテーブルの1つ(および1つだけ)への外部キーが必要なので、実際には必要なすべての外部キーがありますが、1つを除くすべてがNULLです。

(Djangoのユーザーは、これを汎用外部キーを使用する代わりに認識することができます)

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

ruby-on-rails - Railsのクラス名/タイプがポリモーフィックで機能しないhas_many:through

借方と貸方を管理する請求システムがあります。基本的に、請求額は借方の合計から得られ、残高は貸方の合計を合計額から差し引くことによって算出されます。

私はこれを4つのモデルで行っています。

  1. 請求書
  2. ラインアイテム
  3. デビット
  4. クレジット

それが機能する方法は、recordableと呼ばれるポリモーフィックな関連付けを持つ結合モデル(Line Item)を介したものです。一見、すべてが正しく機能しているように見えます。ただし、ラインアイテムを調べると、recordable_idは正常に表示されますが、recordable_typeはnilであることがわかります。

コードの内訳は次のとおりです。

誰かが私をここで正しい方向に向けることができますか?