特定のフォーム(コントローラのアクション)でのみバリデーションをトリガする方法はありますか? User.create(:validate=>true)
フラグのようなものです。特定の形式のバリデーション
答えて
はい、あなたは例えば、検証に条件文を供給することができます:
今validates_presence_of :something, :if => :special?
private
def make_sepcial
@special = true
end
def special?
@special
end
を使用すると、これらの検証をオンにしなければならないすべては、次のとおりです。
s = SomeModel.new
s.make_special
だから、私はモデルを保存した後に特別にfalseに設定しなければなりませんか? – methyl
Nope。 '@ special'は単なるインスタンス変数です。それ以上の作業がなければ、それを死に至らせることができます。それ以上のデータベースクエリには永続化されません。 – thomasfedb
あなたはコメントで説明したように、新しいレコードの検証をスキップします。その場合、あなたはthomasfedbの答えを使用できますが、@special
変数を使用しませんが、:
validates_presence_of :something, :if => :persisted?
これは、保存されたUser
のためではなく、新しいUser
秒間だけ検証します。 persisted?
のAPIドキュメントを参照してください。
次のようにも使用できます:unless =>:persisted?新しい場合は逆バリデーションをしたいが、保存しない場合は逆の検証をしたい。 –
これは正解です – doz87
これは少し古いです。しかし、私はhttp://apidock.com/rails/Object/with_optionsがこの種の動作を処理する良い方法であることを発見しました。
- 1. 入力形式のバリデーション
- 2. 春の形式のラッパーのバリデーション
- 3. 特定JSON形式
- 4. 特定の日付形式
- 5. 特定のJSON形式のPHParray
- 6. 不正な形式のURLの特定
- 7. 異なるExcelファイル形式の特定
- 8. 変換 '日付' 特定の形式
- 9. 特定の形式で特定の行を印刷する
- 10. モデル内の特定のアクションのバリデーション
- 11. 特定の形式でtime_tを出力する方法は?この形式で
- 12. は、SSIS内の特定の形式に日時形式を変換
- 13. MVC形式で特定の形式で表示し、クエリ文字列
- 14. 特定の形式のトークンを定義する方法
- 15. 特定の行と特定の値を持つExcel形式のセル
- 16. 特定のログ形式を.goaccessrcで定義します。
- 17. XpathバリデーションのワイヤモックマッチXPath式
- 18. JQgrid特定の形式のクライアント側の日付のソート
- 19. 特定の形式のリストへのデータフレームの内容
- 20. 日付の範囲は特定の形式のPythonで
- 21. 特定の形式の現在の日付を取得する
- 22. 特定のロケールのアンドロイドでのカスタム日付形式
- 23. WooCommerceの特定の注文詳細をエクスポートするTXT形式
- 24. 特定の日付、日/年/年形式のカウントダウンを表示
- 25. 特定の形式のバイナリツリーを出力する
- 26. データフレームを特定の形式のJSONに変換するR
- 27. 特定のメソッドを持つXMLコントロールのシリアル化形式
- 28. Pythonで特定の形式の日付を取得する
- 29. 特定の形式のXMLを取得するC#
- 30. ファイル形式にpreg_replaceでのみ特定のグループを交換し
なぜこれをやろうとしていますか?私たちがあなたの質問の背後にある理由を知っているなら、私たちはより良い答えを与えることができます。 – rdvdijk
私はちょうど少数のフィールドを提供する必要があり、残りはユーザーアクションの編集から記入する必要があるときに登録すると、プロファイルから分離されていない、ユーザーモデルを乱してしまいました。 – methyl
Btwそのようなすべてのバリデーションを渡すことができます:Model.save(false) – emrahbasman