私はAgile Web Development with Rails
のような書籍になぜvalidates_whatever_of
という妥当性検査の方法がないのか迷っていたので、すべての妥当性検査の例はvalidates :attr, :whatever => true
を使って行われましたか?私はRailsを学び始めました。これで私は混乱しました!Railsのバリデーション3.2
1
A
答えて
2
:
3.xではvalidates_presence_of :user_name
は、あなたが今やる:
validates :username, :presence => true
古い方法はまだサポートされている、私は思いますしかし、廃止予定です。
これは実際には同じことを表現するための別の方法です。古い本やチュートリアルではこれを使用しますが、それを3.x形式に変換するのはかなり簡単です。たとえば、http://api.rubyonrails.org/classes/ActiveModel/Validations/ClassMethods.html#method-i-validatesを参照してください。
2
validates
の構文は、同じことについてはちょうどnew shortcutです。これは、同じような制限を持つ多数の属性を検証する場合に特に便利です。だから、この:
validates_presence_of :one
validates_presence_of :two
validates_presence_of :three
validates_presence_of :four
はまた、カスタムバリデータに素敵な、一貫性のあるインターフェースです
validates :one, :two, :three, :four, :presence => true
に減少させることができます。あなたが何か言っていたのRails 2.xでは、では
関連する問題
- 1. のRails 3.2、
- 2. Railsバリデーションとロールバック
- 3. Rails 3.2 flotilla
- 4. Rails 3.2 streaming
- 5. スプラッシュページ:メールコレクション(Rails 3.2)
- 6. Kaminari on Rails 3.2
- 7. Rails 3.2 Obj.try()failed
- 8. Realtime with Rails 3.2
- 9. Railsの3.2 Carrierwaveプリコンパイルエラー
- 10. Backbone.js Rails 3.2のテンプレートファイル
- 11. RailsのバリデーションはRedisの
- 12. Ruby On Railsスプレッドシート - ファイルタイプのバリデーション
- 13. Rails 3バリデーション、複数のフィールド
- 14. RailsバリデーションとDRYの原理
- 15. Railsモデルのバリデーションを取得
- 16. Railsの条件付きバリデーション
- 17. Rails部分テーブルのバリデーション
- 18. Rails 3.2 rake assets:プリコンパイルエラー
- 19. rails 3.2、bootstrap and fontface
- 20. savon httperror 302 rails 3.2
- 21. Rails 3.2アセットパイプライン、CarrierWave、.gitignore
- 22. Rails 3.2とPaloma gem
- 23. Rails 3.2 ActivedRecord :: Store undefined
- 24. rails 3.2 subdomains and devise
- 25. Compass Sprites in Rails 3.2
- 26. Rails 3.2 SSRSとSavonRD
- 27. rails 3.2.rc2 with node.js
- 28. Rails 3.2、Refinery Edge Blog
- 29. Rails 3.2、Vagrant、HAML:ActionView :: MissingTemplate
- 30. Railsの3.2 - クエリパフォーマンス(Postgresの)
しかし、 'validates_presence_of:one、:two、:three、:four'も動作します – Ansd
ああ、そうだと思います。 :-)それはおそらく工夫されているかもしれませんが、新しいスキームでは、 'validates'に" validates "を付けることによって、" presence "の他に' validates'を使って他の側面を検証することもできます。新しいスキームの最良の議論は、ActiveRecord :: Baseにパッチを当てることなく拡張可能であることです。上記の例のように、カスタムバリデーターを追加することができ、 'validates'のオプションとして利用可能になります。たとえば、EmailValidatorを作成すると、 ':valid => true'が利用可能になります。 –
非常に有用なロブ。ありがとう! :) – Ansd