私はActiveRecordオブジェクトのコレクションを持っています。私は実際にそれらをデータベースに保存することなく、これらのオブジェクトのそれぞれについてすべてのバリデーションを実行できるようにしたい。彼らをデータベースに保存することが有効かどうかを知りたいだけです。言い換えれば、私は基本的に私のオブジェクトごとにerrors
のデータ構造体を設定したいと考えています。これを行う方法はありますか?または、おそらく、errors
コレクションのライフサイクルについて何か不足していますか?保存せずにActiveRecord検証を実行する
10
A
答えて
23
"無効?"メソッドはあなたのすべてのエラーをActiveRecord :: Errorsオブジェクトに入れて、あなたの検証を実行します。これは上記の例のようにアクセスできます。コンソールで試してみてください。
2
オブジェクトに対して#valid?
メソッドを実行すると、すべての検証が実行され、errors
構造体が生成されます。
@user = User.new
if @user.valid?
#do things
にエラーが何であるかを確認したい場合は、あなたが行うことができます:
@user = User.new
unless @user.valid?
@user.errors.each {|k, v| puts "#{k.capitalize}: #{v}"}
を呼び出すあなたはモデルが有効であるかどうかを確認するには、次の操作を行うことができ
dude = Person.new
unless dude.valid?
# Examine errors
end
関連する問題
- 1. grailsドメインオブジェクトを保存せずに変更して検証する
- 2. 保存せずにNSManagedObjectを検証できますか?
- 3. Silverlightの[保存]ボタンで検証を実行する方法は?
- 4. Rails 4:ActiveRecordは属性を保存せず、デフォルト値を保存します
- 5. ActiveRecordで変更を加えずに保存されたレコードを検証する方法は?
- 6. Railsに保存せずにフィールドの一意性を検証する方法は?
- 7. レコードを保存せずにActiveRecordモデル/コントローラを使用する方法の提案?
- 8. Kerasで保存されたモデルの検証を再実行するには
- 9. バックエンドでのカスタム認証 - 保存せずに実行時にユーザを作成する
- 10. ActiveRecord検証:検証に失敗した場合でも関連付けが保存されます
- 11. ページのフォームを検証せずにユーザーコントロールフォームを検証する
- 12. yii phpのフォルダに保存せずにファイルを保存する
- 13. EFコードファーストモデルによる保存または検証前のロジックの実行
- 14. activerecordの外でactiverecordスタイル検証を作成するには?
- 15. ファイルをファイルに保存せずにファイルを検索中
- 16. Netsuite SuiteTalkで「保存済み検索」の検索タイプの保存済み検索を実行するには
- 17. ツリー検索の保存実行状態
- 18. 検証エラー後にフォームファイルを保存
- 19. 保存せずに画像を撮る
- 20. SQLクエリを実行せずにdatagridviewを検索する
- 21. 親属性によるActiveRecord検証
- 22. jsファイルを生成せずに検証するためにTypeScriptを実行するには?
- 23. 保存時にマクロを実行する
- 24. フォルダビューに保存せずに高度な検索項目を表示するvba
- 25. symfonyアップロードファイルをサーバに保存せずに
- 26. Excel interop:保存ダイアログを表示せずにブックを保存
- 27. ローカルに保存せずにzipファイル内にPDFを保存する方法
- 28. 親エンティティをMagentoに保存せずに属性値を保存する
- 29. トランザクションごとに親を保存せずに子エンティティを保存する方法
- 30. EF、ナビゲーションプロパティを保存せずにDBにエンティティを保存する方法は?
同様の行に沿って、私はそのレコードに基づいて発行リンクを公開しようとしているかどうかを表示しようとしています。私のバリデーションでは、バリデータを使用しています。属性を変更してtrueと言う簡単な方法はありますか?それが公開に有効かどうかを確認してください。 post = Post.new(:title => "title"、:published => false) post.published = true post.validならば? post.published = false – chetu