問題タブ [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 - ポリモーフィックな has_one モデルによるネストされた属性
Rails 2.3.5 で has_one ポリモーフィック モデルで accept_nested_attributes_for を使用しています。モデルとその関連付けは次のとおりです。
これはビューです:
これは部分的な shared/address_fields.html.haml です
これがコントローラです: class VendorsController < ApplicationController
問題は、すべてのフィールドに入力すると、期待どおりに両方のテーブルにレコードが保存されることです。
しかし、名前と都市または住所 1 だけを入力すると、検証は機能し、エラー メッセージが表示されますが、都市または住所 1 に入力した値は保持されないか、住所フォーム フィールド内に表示されませんか?
これは、編集アクションでも同じです。
レコードは保存されますが、住所は編集フォームに表示されません。クライアント モデルの名前のみが表示されます。実際、ログを見てみると、住所モデルの SQL はまったくクエリされていません。
ruby-on-rails - モデルが間違ったタイミングで検証を実行するのはなぜですか?
私のedit
行動では、employees_controller
次のコード行があります。
Address
編集erbファイルに表示されるように、空白がない場合は空白を追加する必要があります。そうすれば、この従業員に関連付けられているアドレスがなかった場合、このレコードを編集するときにアドレスを追加する必要があります。
このような多対多の関連があります:Person <- User <- Employee
そしてと多Person
対多の関係がありAddress
ます。その宣言は次のようになります。
コードは次の70行目で失敗しますemployees_controller.rb
:
その呼び出しに注意してくださいsave
?なぜこれをしているのですか?
ruby-on-rails - collection_select を使用してポリモーフィック モデルを作成するにはどうすればよいですか?
これは私のモデルです:
私が今やりたいことは、次のようなものです: app/views/sessions/edit.html.erb
しかし、ポリモーフィック割り当てのために機能していません。どうすればこの問題にアプローチできますか?
編集: エラーは次のとおりです。
パラメータは次のとおりです。
speakable に渡される値は、Speaker/Company の ID です。はい、これがcollection_select
返すように指定した値ですが、どうすれば両方の値 (speakable_id
とspeakable_type
) を指定できますか?
ruby-on-rails - Ruby on Rails: 1 つの場所からさまざまなユーザー タイプを認証するにはどうすればよいですか?
これは、スタック オーバーフローに関する私の最初の投稿です。まったく異なるサイト エクスペリエンスを持つ 3 種類のユーザー (顧客、雇用主、ベンダー) を認証するシステムを構築しようとしています。
ユーザー名、パスワード、および user_type (+ AuthLogic のその他の必須フィールド) を含む多態的な「ユーザー」テーブル (AuthLogic を使用) を使用することを考えています。これが良い方法である場合、標準的な方法で user_id を user_type で認証した後、ユーザーに適したページにユーザーを誘導できるようにするにはどうすればよいですか?
ありがとう。
ruby-on-rails - インスタンスに値の表示をスキップするオブジェクトがあるかどうかを確認するにはどうすればよいですか?
status と呼ばれるモデルの周りにポリモーフィックな関連付けを作成しました。
一部の連絡先には、ステータスが関連付けられています。多くの人はしません。
ステータスがないときにステータスを呼び出そうとすると、エラーが発生します。現在、モデルのステータスを作成していなくても、if-end ブロックにあるものは何でも実行されます。
これが私が試みていることですが、うまくいきません:
コントローラーでは、次のように定義されています。
ところで、コードを読みやすく DRY にするためにもオープンします。
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で囲むことができると思いますが、それは例外を予期してはならないという考えに反し、これは私が完全に期待していることです。
重複が存在するためにオブジェクトをデータベースにサイレントに保存しないだけの場合に例外を発生させない、これを行うためのより良い方法はありますか?
ruby-on-rails - モデルとポリモーフィックの関連付け
連絡先をクラスに関連付けようとしていますが、2つの異なるタイプとして関連付けています。Current_classesおよびInterested_classes。
多態性を有効にする必要があることはわかっていますが、どこで有効にする必要があるかわかりません。
これは私が今持っているものです
そして、連絡先モデルの内部に、このようなものが必要です。
私は何が間違っているのですか?
ruby-on-rails - Rails:ポリモーフィックユーザーテーブルはAuthLogicで良いアイデアですか?
ホームページの1つのログインフォームから、顧客、企業、ベンダーの3つのユーザータイプにログインする必要があるシステムがあります。
http://github.com/binarylogic/authlogic_exampleにあるAuthLogicのサンプルアプリに従って機能する1つのユーザーテーブルを作成しました。現在「顧客」、「会社」、または「ベンダー」のいずれかを含む「ユーザータイプ」というフィールドを追加しました。
注:各ユーザータイプには多くの異なるフィールドが含まれているため、単一テーブル継承が最善の方法であるかどうかはわかりません(この結論が無効な場合は修正を歓迎します)。
これは、3つのタイプのそれぞれがユーザーレコードで「タグ付け」されているポリモーフィックな関連付けですか?UserテーブルとユーザータイプCustomer、Company、Vendorの間に適切な関係を持たせるために、モデルはどのように見える必要がありますか?
どうもありがとう!
- - - アップデート - - -
現在の設定:
これはそれらを設定するための有効な方法ですか?
database - データベースのベストプラクティス
コメントを格納するテーブルがあります。コメントは、別のユーザーからのものか、このアプリの個別のエンティティである別のプロファイルからのものである可能性があります。
私の当初の考えでは、テーブルにはuser_idフィールドとprofile_idフィールドの両方があるため、ユーザーがコメントを送信すると、user_idはprofile_idを空白のままにします。
これは正しいですか、間違っていますか、もっと良い方法はありますか?
ruby-on-rails - 2 つのモデルを 1 つの RoR act_as_tree ツリービューに結合する方法は?
部門と従業員など、acts_as_tree を持つ 2 つの単純なモデルがあります。私の目標は、次のように、両方のモデルを 1 つの全体的なツリーに結合するツリービューを作成することです。
- 部門1
- サブ部門 1.1
- 従業員A
- 従業員B
- サブ部門 1.2
- サブ部門 1.1
- 部門2
- サブ部門 2.1
- 従業員C
- サブ部門 2.1
- 部門3
- サブ部門 3.1
- 従業員D
- 従業員E
- サブ部門 3.2
- サブ部門 3.1
等
私はすでにこれを見つけました:複数のモデルを持つツリーとして機能しますが、正しい方向にもう少しポインターを使用できるのではないかと心配しています。
ありがとう!