問題タブ [validates-uniqueness-of]

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 に答える
386 参照

ruby-on-rails - Rails validates_uniqueness_of とスコープ - 更新時にのみ動作

私はこれらの3つのクラスを持っています:

これvalidates_uniqueness_ofは、彼に関連付けられた ProfileSubject のコレクションを使用してプロファイルを更新すると、うまく機能します。ただし、作成アクションでは、この一意性は検証されません。おそらくこれは、オブジェクトを作成するときにまだ profile_id を持っていないためだと思いました...そして、モデルに独自のトークンを追加しようとしました。これは、それらを接続して検証するために使用できます(スコープで使用しますvalidates_uniqueness_of)。私が今知っている広告は、役に立たず、機能していませんでした。

助けていただけませんか...この標準の検証が更新アクションでは正常に機能するのはなぜですか..しかし、作成アクションでは機能しません。

作成コードは標準で、次のようになります。

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

ruby-on-rails - Ruby on Rails -- レコードの一意の属性だけでなく、一意のレコードを検証する

これは非常に疑問かもしれませんが、属性「lightbulb_id」と「student_id」を持つ「Favorites」というテーブルの一意のレコードのみを許可しようとしています。モデルの検証について知っている

しかし、レコード全体の一意性を検証したい (つまり、 と の組み合わせlightbulb_id) student_id。そのため、重複する可能性がlightbulb_idありstudent_id(学生は複数の lightbulb_id を「お気に入り」にすることができます)、その結果、同じ student_id が異なる lightbulb_id で [お気に入り] テーブルに複数回表示される可能性があります。ただし、特定の組み合わせを複製することはできません (生徒が電球を 2 回お気に入りにすることはできません)。

これは非常に基本的な質問かもしれませんが、何か提案をいただければ幸いです。ありがとう。

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

ruby-on-rails - 外部キーの外部キーから一意性を検証

Rails アプリケーションには、User、Course、および CourseTemplate の 3 つのモデルがあります。

Course は User に属し、CourseTemplate は Course に属します。

私がやりたいことは、CourseTemplate 名とユーザー ID の間の一意性を検証することです。

これは可能ですか?

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

ruby-on-rails - Rails - 一意性のカスタム検証

列 (文字列型) に一意性を付与したいのですが、関数 and を使用してデータベースに挿入する前に、最初の部分を切り捨てている一部の文字列に問題がありますbefore_save。したがって、切り捨て/フォーマットの後は同じであるはずですが、入力がデータベースの内容と異なる可能性があるため、レールの一意性の検証は機能しません。

最初に文字列を切り捨ててから、その一意性を検証できるようにしたいのですが、 rails を使用してそれが可能かどうかはわかりませんvalidates uniqueness: true。カスタムを書くだけvalidateですか?

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

ruby-on-rails - ID の validates_uniqueness_of を使用する方法ですが、同じ ID を持つアイテムのリストからいくつかのアイテムに対してのみ使用します。レール

2 つのドロップダウン リストがあります。を含むアイテムと、それを含むアイテム(この場合は 2) をbmp_id含むサブリストで、それぞれに一意の があります。メイン ドロップダウン リストのオプションの 1 つには、[3, 4, 5, 6] が付いた 5 つのサブリスト オプションが含まれます。ユーザーが[4、5、および6]のサブリストの選択肢の1つしか持てないようにしたいのですが、これは一意ではなく、他のものが追加されているかどうかに関係なく追加できます。フォームを送信すると、とが Bmp というテーブルに追加されます。bmp_idbmpsublist_idbmpsublist_idbmpsublist_idbmpsublist_idbmp_idbmpsublist_id

これは、モデルで使用している検証です。

この検証の問題は、最初に 3 のオプションを追加すると、4、5、および 6 のオプションを追加bmpsublist_idできなくなり、3 のレコードが既に追加されていても追加できるようにしたいことです。追加されました。しかし、 が4、5、または 6 のものの 1 つを追加しても、私が変更したくない 3 のものを追加することができます。bmpsublist_idbmpsublist_idbmpsublist_id

何か案は?これが非常に紛らわしい場合は申し訳ありません。物事をうまく説明する方法が本当にわかりません。

アップデート:

私はそれを理解しました、答えは以下です

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

performance - Active Record Rails での一意性検証の効率

レールの列に一意の値を持つレコードを作成する際に、どちらがより効率的ですか? 一意性の検証を配置するのと、同じ値を持つレコードが存在するかどうかを調べて、存在に基づいて作成します。

どちらがコーディングとパフォーマンスの点でより効率的です。