問題タブ [custom-validators]

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

ruby-on-rails - ネストされた属性のカスタム検証

親オブジェクトで検証を実行する前に、レール (3.2.8) を取得してネストされた属性を保存する方法を見つける必要があります。私は自分の問題に対する答えを長い間探してきましたが、同様の質問を見つけましたが、まだエレガントな解決策を見たことがありません.

状況は次のとおりです。

各 log_entry に複数のアクティビティがある activity_log があります。log_entry には「hours」というフィールドがあり、その日の合計作業時間を表します。各アクティビティには、そのアクティビティに費やされた時間を表す「時間」フィールドもあります。log_entry.activities.sum(:hours) が log_entry.hours を超えないようにする必要があります。

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

問題は、params の新しいデータに対してチェックするのではなく、 activities.sum(:hours) を計算するときにデータベースに対してチェックすることです。したがって、log_entry の時間数を 4 に設定し、時間数を 5 に設定してアクティビティを作成すると、エラーなしで保存されます (db では activities.sum(:hours) == 0 と表示されるため)。しかし、同じレコードを編集してアクティビティの時間を 4 に設定すると、エラーが発生します (db には activities.sum(:hours) == 5 と表示されているため)。

ここで回避策を見つけました: http://railsforum.com/viewtopic.php?id=41562、しかし、この問題を解決するよりエレガントな方法があることを望んでいました。(実際には、この解決策は、説明したように機能しません。唯一の問題は、レコードが通過すべきではない検証に合格することであると想定しているためです。また、レコードが通過するはずの検証に失敗するという問題もあります。修正できると思います検証ステップをスキップしてから、コントローラーで (保存後に) sum_hours_not_more_than_total_hours のようなチェックを実行しますが、検証から得られる安心感が本当に気に入っています。)

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

asp.net - カスタム検証が ASP.NET で機能しない

ページでの「保存」操作のカスタム検証が必要です。要件は、アラートを表示する必要があり、アラートの [OK] ボタンをクリックしたときに、ページがポストバックされないようにすることです。これが私のコードです。

ボタンクリックでこの関数を呼び出します。

問題は、指定したとおりにアラートが表示されず、ページがポストバックされることです。私は何が欠けていますか?

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

ruby-on-rails - 異なるモデルでクリップ ファイルを検証する一般的な方法

私は2つのモデルユーザー、企業を持っています

ユーザーモデル:

会社のモデル:

ユーザーの検証を行い、validation_helper に入れました

私の問題は、名前が異なるため、ユーザーの avatar_file_name と会社のロゴです。

それぞれに特定の方法を実行する必要がありますか? どうすればこれを回避できますか?

0 投票する
0 に答える
2272 参照

c# - ASP.NET カスタム CustomValidator と EnableClientScript

CheckBoxList から 1 つ以上のチェックボックスが選択されているかどうかを検証するように設計された CustomValidator を継承するカスタム バリデータ (CheckBoxListValidator と呼ばれる) があります。サーバー側の検証は期待どおりに機能しますが、クライアント側の検証は起動しません。関数でアラートが発生するかどうかを確認するだけの単純なものを試しましたが、それでも発生しません。コントロールの完全なコードを次に示します。注として、生成された HTML にスクリプトが表示されるので、EnableClientScript は適切に設定されています。発火しないだけです。

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

ruby-on-rails - 他のメソッドによって呼び出されるメソッドのカスタム検証を実装する方法は?

メソッドを介してSubscriptionforを作成します。User.create_subscription(plan_title)

このメソッドは、メソッドを介して (オーバーサブスクライブされたプランやアーカイブされたサブスクリプションではなく) サブスクライブできることを確認します.plan_subscribable?(plan)

このメソッドはtrueまたはfalseを返しますが、ユーザーに渡すことができるエラー メッセージも返すようにしたいと考えていますfalse

これらの検証エラーを実装する方法と場所は?

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

ruby-on-rails - Railsアプリでモデルとは独立してカスタム検証機能をテストする

Rails アプリで使用するカスタム検証メソッドを構築しています。私が構築したいバリデーターのタイプは、バリデーターが呼び出されるモデルの列を他のテーブルの列と比較します。以下は、私が構築しようとしているバリデーターのパターンを示すコード例です。

これは、アプリとスキーマに存在するモデルを使用してテストできます。ただし、これは、バリデーターが依存していないモデルに依存していると説明するため、バリデーターをテストする良い方法ではありません。

他に考えられる唯一の方法は、テストで一連のモックアップ モデルを作成することです。

ただし、:compare_to_model はスキーマの一部ではないため、:column が :compare_to_model の :some_column と関係があることを検証することはできません。

テストでスキーマの一部であるモック モデルをどのように作成しますか? または、このようなカスタムバリデータ関数をテストするより良い方法はありますか?