問題タブ [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 に答える
4400 参照

ruby-on-rails - ポリモーフィックな has_one モデルによるネストされた属性

Rails 2.3.5 で has_one ポリモーフィック モデルで accept_nested_attributes_for を使用しています。モデルとその関連付けは次のとおりです。

これはビューです:

これは部分的な shared/address_fields.html.haml です

これがコントローラです: class VendorsController < ApplicationController

問題は、すべてのフィールドに入力すると、期待どおりに両方のテーブルにレコードが保存されることです。

しかし、名前と都市または住所 1 だけを入力すると、検証は機能し、エラー メッセージが表示されますが、都市または住所 1 に入力した値は保持されないか、住所フォーム フィールド内に表示されませんか?

これは、編集アクションでも同じです。

レコードは保存されますが、住所は編集フォームに表示されません。クライアント モデルの名前のみが表示されます。実際、ログを見てみると、住所モデルの SQL はまったくクエリされていません。

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

ruby-on-rails - モデルが間違ったタイミングで検証を実行するのはなぜですか?

私のedit行動では、employees_controller次のコード行があります。

Address編集erbファイルに表示されるように、空白がない場合は空白を追加する必要があります。そうすれば、この従業員に関連付けられているアドレスがなかった場合、このレコードを編集するときにアドレスを追加する必要があります。

このような多対多の関連があります:Person <- User <- Employeeそしてと多Person対多の関係がありAddressます。その宣言は次のようになります。

コードは次の70行目で失敗しますemployees_controller.rb

その呼び出しに注意してくださいsave?なぜこれをしているのですか?

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

ruby-on-rails - collection_select を使用してポリモーフィック モデルを作成するにはどうすればよいですか?

これは私のモデルです:

私が今やりたいことは、次のようなものです: app/views/sessions/edit.html.erb

しかし、ポリモーフィック割り当てのために機能していません。どうすればこの問題にアプローチできますか?

編集: エラーは次のとおりです。

パラメータは次のとおりです。

speakable に渡される値は、Speaker/Company の ID です。はい、これがcollection_select返すように指定した値ですが、どうすれば両方の値 (speakable_idspeakable_type) を指定できますか?

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

ruby-on-rails - Ruby on Rails: 1 つの場所からさまざまなユーザー タイプを認証するにはどうすればよいですか?

これは、スタック オーバーフローに関する私の最初の投稿です。まったく異なるサイト エクスペリエンスを持つ 3 種類のユーザー (顧客、雇用主、ベンダー) を認証するシステムを構築しようとしています。

ユーザー名、パスワード、および user_type (+ AuthLogic のその他の必須フィールド) を含む多態的な「ユーザー」テーブル (AuthLogic を使用) を使用することを考えています。これが良い方法である場合、標準的な方法で user_id を user_type で認証した後、ユーザーに適したページにユーザーを誘導できるようにするにはどうすればよいですか?

ありがとう。

0 投票する
4 に答える
263 参照

ruby-on-rails - インスタンスに値の表示をスキップするオブジェクトがあるかどうかを確認するにはどうすればよいですか?

status と呼ばれるモデルの周りにポリモーフィックな関連付けを作成しました。

一部の連絡先には、ステータスが関連付けられています。多くの人はしません。

ステータスがないときにステータスを呼び出そうとすると、エラーが発生します。現在、モデルのステータスを作成していなくても、if-end ブロックにあるものは何でも実行されます。

これが私が試みていることですが、うまくいきません:

コントローラーでは、次のように定義されています。

ところで、コードを読みやすく DRY にするためにもオープンします。

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

ruby-on-rails - 多形has_manyの重複を防ぐレール:関連付けを介して

アソシエーションを通じて多形has_manyのエントリの重複を防ぐ簡単な、または少なくともエレガントな方法はありますか?

タグ付けできるストーリーとリンクの2つのモデルがあります。ここではプラグインを使用しないという意識的な決断をしています。私は実際に起こっていることすべてを理解し、私が完全に理解していない他の誰かのコードに依存しないようにしたいです。

私の質問が何になっているのかを確認するために、コンソールで次のコマンドを実行した場合(ストーリーオブジェクトとタグオブジェクトがデータベースにすでに存在していると仮定)

私のタギング結合テーブルには2つのエントリが追加され、それぞれに同じ正確なデータがあります(tag_id = 1、taggable_id = 1、taggable_type = "Story")。それは私にはあまり適切ではないようです。そこで、これを防ぐために、タグ付けモデルに次のものを追加しました。

ほぼ意図したとおりに機能しますが、ストーリーまたはリンクに重複するタグを追加しようとすると、ActiveRecord :: RecordInvalid:Validationfailed例外が発生します。リストに関連付けを追加すると、保存と呼ばれるようです。(sansを保存するのではなく!)何かがうまくいかなかった場合に、単にfalseを返すのではなく、例外を発生させるメソッド。それは私がしたいことではありません。新しいタグを追加する試みはすべてtry/catchで囲むことができると思いますが、それは例外を予期してはならないという考えに反し、これは私が完全に期待していることです。

重複が存在するためにオブジェクトをデータベースにサイレントに保存しないだけの場合に例外を発生させない、これを行うためのより良い方法はありますか?

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

ruby-on-rails - モデルとポリモーフィックの関連付け

連絡先をクラスに関連付けようとしていますが、2つの異なるタイプとして関連付けています。Current_classesおよびInterested_classes。

多態性を有効にする必要があることはわかっていますが、どこで有効にする必要があるかわかりません。

これは私が今持っているものです

そして、連絡先モデルの内部に、このようなものが必要です。

私は何が間違っているのですか?

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

ruby-on-rails - Rails:ポリモーフィックユーザーテーブルはAuthLogicで良いアイデアですか?

ホームページの1つのログインフォームから、顧客、企業、ベンダーの3つのユーザータイプにログインする必要があるシステムがあります。

http://github.com/binarylogic/authlogic_exampleにあるAuthLogicのサンプルアプリに従って機能する1つのユーザーテーブルを作成しました。現在「顧客」、「会社」、または「ベンダー」のいずれかを含む「ユーザータイプ」というフィールドを追加しました。

注:各ユーザータイプには多くの異なるフィールドが含まれているため、単一テーブル継承が最善の方法であるかどうかはわかりません(この結論が無効な場合は修正を歓迎します)。

これは、3つのタイプのそれぞれがユーザーレコードで「タグ付け」されているポリモーフィックな関連付けですか?UserテーブルとユーザータイプCustomer、Company、Vendorの間に適切な関係を持たせるために、モデルはどのように見える必要がありますか?

どうもありがとう!

- - - アップデート - - -

現在の設定:

これはそれらを設定するための有効な方法ですか?

0 投票する
5 に答える
1575 参照

database - データベースのベストプラクティス

コメントを格納するテーブルがあります。コメントは、別のユーザーからのものか、このアプリの個別のエンティティである別のプロファイルからのものである可能性があります。

私の当初の考えでは、テーブルにはuser_idフィールドとprofile_idフィールドの両方があるため、ユーザーがコメントを送信すると、user_idはprofile_idを空白のままにします。

これは正しいですか、間違っていますか、もっと良い方法はありますか?

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

ruby-on-rails - 2 つのモデルを 1 つの RoR act_as_tree ツリービューに結合する方法は?

部門と従業員など、acts_as_tree を持つ 2 つの単純なモデルがあります。私の目標は、次のように、両方のモデルを 1 つの全体的なツリーに結合するツリービューを作成することです。

  • 部門1
    • サブ部門 1.1
      • 従業員A
      • 従業員B
    • サブ部門 1.2
  • 部門2
    • サブ部門 2.1
      • 従業員C
  • 部門3
    • サブ部門 3.1
      • 従業員D
      • 従業員E
    • サブ部門 3.2

私はすでにこれを見つけました:複数のモデルを持つツリーとして機能しますが、正しい方向にもう少しポインターを使用できるのではないかと心配しています。

ありがとう!