問題タブ [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.
ruby-on-rails - Rails ポリモーフィック モデル。ビューでフォーム検証エラーを表示するには?
ポリモーフィック アソシエーションのすべてが機能していますが、モデルの検証があれば、エラーは表示されません。
私のコントローラーには次のものがあります:
そしてモデルでは:
非常に標準的なもの。しかし実際には、render :action => 'edit' が発生すると、正しいページに移動しますが、エラーは表示されません。
私の new.html.erb ビュー:
私のコンソール出力:
ruby-on-rails - Rails ポリモーフィック has_many
has_many
Ruby on Rails を使用して、所有者が常に既知であるが、関連付け内の項目が所有者の列で指定されたポリモーフィック (ただし同種) 型になるポリモーフィックな関係を実現するにはどうすればよいですか? たとえば、Producer
クラスのhas_many
製品が生産者のインスタンスに、実際には多くの自転車、アイスキャンディー、または靴ひもがあるとします。各製品クラス (自転車、ポプシクルなど) にプロデューサーとの関係を簡単に持たせることができますがbelongs_to
、プロデューサー インスタンスが与えられた場合、それらがさまざまなタイプ (プロデューサー インスタンスごと) である場合、どのように製品のコレクションを取得できますか?
Rails のポリモーフィックな関連付けにより、プロデューサーは多くの製品に属することができますが、関係を逆にする必要があります。例えば:
したがって、私の Producer テーブルには既に、いくつかの製品クラス (自転車、ポプシクルなど) に対応する「タイプ」列がありますが、どうすれば Rails で次のようなことができるようになります:
これが明らかであるか、よくある繰り返しである場合は申し訳ありません。私はそれを簡単に達成するのに驚くほど苦労しています。
ruby-on-rails - ポリモーフィック アソシエーション タイプ (Rails) に応じて異なる検証ルールを適用する方法は?
Rails ポリモーフィック モデルがあり、関連するクラスに応じてさまざまな検証を適用したいと考えています。
ruby-on-rails - RoR: このシナリオでは、belongs_to, :polymorphic を使用する必要がありますか?
私は、多くの ActiveRecord モデルがそれに関連付けられた会話を持つことができるプロジェクトに取り組んでいます。ユーザーは、サイトのほぼすべての側面について話し合うことができます。これをどのように実装するかについて、2 つの考えがあります。
1) 会話ではなくアセット内で belongs_to を使用します - 会話はそのアセットをまったく認識しません
2) 会話で belongs_to, :polymorphic => true を使用する
この関係をモデル化する正しい方法はどれですか? その関係を一言で表すならば、「商品・発注書の会話は一つかもしれません」。
mysql - 多くのテーブルの 1 つへの外部キー?
外部キー制約を設定する通常の方法は、外部キーが指すテーブルを選択することです。
1 つのテーブルと一連のテーブルの間にポリモーフィックな関係があります。
つまり、このテーブルは、セット内のテーブルの 1 つとリレーションを持つことになります。
例えば。
上記の例で、person_type が「subordinates」の場合、person_id は subordinates.id への外部キーである必要があり、製品も同様です。
だから、多くのテーブルの1つに外部キーを持つことは可能ですか、それともテーブルを割り当てるときにそれが指すテーブルを具体的に設定する必要がありますか?
この質問は、MySQL と PostgreSQL の両方を対象としています。
ありがとう
ruby-on-rails - 複数のモデルを通過するRailsで関連付けを指定するにはどうすればよいですか
タグ付けを処理するために、いくつかのトリッキーなポリモーフィックな関係を書いています。
Tag
モデルと、Tagging
ポリモーフィックに属するモデルがありtaggable
ます。
、、、を呼び出すことができるItem
モデルがありhas_many :taggings, :as => :taggable
ます。has_many :tags, :through => :taggings
@item.tags
これはすべて正常に機能しています。
Store
別のモデルをミックスに取り入れたい-awhich has_many :items
。を使用して、ストア内のすべてのアイテムに関連付けられているすべてのタグを検索できるようにしたい@store.tags
。
これが私が持っているものです:
ただし、これによりtaggings
、実際のタグではなく、ストア内のアイテムに関連付けられているすべてが返されます。
ストアにhas_manyタグ、アイテム、タグ付けを指定するにはどうすればよいですか?
必要に応じてより多くの情報を投稿できます-情報過多を防止しようとしています!ありがとう :)
ruby-on-rails - トリッキーな協会の質問レール
50人のユーザーがVoteItem1に投票したとしましょう。これを見つけるための最良の方法は何ですか、同じ50人のユーザーの過半数が投票した他のVoteItemは何ですか?
ありがとう
ruby-on-rails - 適切な検証エラーを書いていますか?
更新:より完全な説明で質問全体をガット
異なる名前の同じ質問です。
私のモデルでは、の存在を検証します。
ただし、どちらかが空白の場合、次のエラーが発生します。
これがキャッチです。動的に追加可能なパーツを含むネストされたフォーム モデルがあります。ここから続くように:
http://railscasts.com/episodes/197-nested-model-form-part-2
それが _quick_fact_fields.erb を生成して呼び出すものです。しかし、それは完全に機能し、quick_facts/_quick_fact_fields.html.haml
更新: 私のコントローラーコード
組織_コントローラー.rb
ruby-on-rails - Railsの双方向ポリモーフィック結合モデル?
私は、サイト間の相互公開の概念を持つマルチサイト CMS に取り組んでいます。いくつかの種類のコンテンツ (記事、イベント、略歴など) を多くのサイトに関連付けることができ、サイトには多くのコンテンツを含めることができます。コンテンツとサイトの間の多対多の関連付けは、関連付けられた各コンテンツ アイテムのいくつかの共通属性もサポートする必要があります。特定の関連付けられたサイトの特定のコンテンツの「プライマリ」および「セカンダリ」コンテンツ ステータス。
私の考えは、ContentAssociation と呼ばれるポリモーフィック結合モデルを作成することでしたが、ポリモーフィック アソシエーションを期待どおりに動作させるのに問題があり、おそらくこれがすべて間違っているのではないかと考えています。
結合テーブルとモデルのセットアップは次のとおりです。
上記の関連付け宣言の多くのバリエーションを試しましたが、何をしても、私が望む動作を得ることができないようです
またはこれ
Rails のビルトイン ポリモーフィズムは、サイトとコンテンツのさまざまな部分との間のこれらの接続に影響を与えるために使用するメカニズムが間違っているのでしょうか? 複数の異なるモデルを 1 つの共通モデルに多対多で接続する必要があるため、便利なようですが、この方法で使用する例を見つけるのに苦労しました。
おそらく、複雑さの一部は、双方向の関連付けが必要なことです。つまり、特定の記事が関連付けられているすべてのサイトを表示し、特定のサイトに関連付けられているすべての記事を表示します。プラグインhas_many_polymorphsについて聞いたことがありますが、問題が解決するようです。しかし、ここで Rails 3 を使用しようとしていますが、まだサポートされているかどうかはわかりません。
このコンテキストでのポリモーフィズムの使用に関する私の不完全な理解に光を当てるだけであっても、どんな助けも大歓迎です。
前もって感謝します!
ruby-on-rails - RoR 達成システム - ポリモーフィック アソシエーションと設計上の問題
Ruby on Rails で実績システムを設計しようとしていますが、設計/コードで問題が発生しました。
ポリモーフィックな関連付けを使用しようとしています:
移行:
次に、この次の使い捨て単体テストを試すと、実績が null であると表示されて失敗します。
そして私の備品: achievements.yml...
weight_achievements.ym...
とはいえ、これを実行することはできません。おそらく、全体的な計画では、これは設計上の問題です。私がやろうとしているのは、すべての成果とその基本情報 (名前と説明) を含む単一のテーブルを用意することです。そのテーブルとポリモーフィックな関連付けを使用して、その成果を達成するための基準を含む他のテーブルにリンクしたいと考えています。たとえば、WeightAchievement テーブルには必要な体重とエクササイズ ID があります。次に、ユーザーの進行状況が UserProgress モデルに格納され、実際の実績 (WeightAchievement ではなく) にリンクされます。
別のテーブルに基準が必要な理由は、基準が実績の種類によって大きく異なり、後で動的に追加されるためです。これが、実績ごとに個別のモデルを作成しない理由です。
これは意味がありますか?アチーブメント テーブルを WeightAchievement のような特定の種類のアチーブメント (したがって、テーブルは name、description、weight_required、exercise_id) とマージする必要があります。その後、ユーザーがアチーブメントを照会すると、コードですべてのアチーブメントを検索するだけですか? (例: WeightAchievement、EnduranceAchievement、RepAchievement など)