33

私が行った場合

  validates :body, :presence => true, :length => {:maximum => 30000, :message => ' is a bit long...'}
  validates :body, :length => {:minimum => 10, :message => ' is a bit short...'}

spaces私はまだ、および/rまたは-非表示の文字のみを含むテキストを持っている可能性があります。/nテキストは定義上空白ではありませんが、それを見ると空白です。

テキストの長さが上記の最小長と最大長であり、表示されている(10スペースではない)ことを確認するにはどうすればよいですか?

4

3 に答える 3

69

Railsは、ここでblank?説明するように、false、nil、および空の文字列をチェックする便利なメソッドを追加します。 Railsは便利なバリデーターも追加します。
allow_blank: false

したがって、あなたの場合は次のようになります。

validates :body, presence: true, allow_blank: false


編集(上記の元の回答):

以下の回答で述べられているように、これはallow_blank: falseのデフォルトの動作であるため、必要ありませんpresence: true

于 2013-08-31T17:09:45.357 に答える
29

presence: truehttp://guides.rubyonrails.org/active_record_validations.html#presenceによると、すでにそれを行ってい ます

このヘルパーは、指定された属性が空でないことを検証します。ブランクを使用しますか?値がnilであるか空白の文字列であるか、つまり、空であるか空白で構成されている文字列であるかどうかを確認するメソッド。

于 2014-07-18T20:02:45.647 に答える
6

次のようなものを追加しようとするとどうなりますか?

validates_format_of :body, :with => /\A[[:graph:]]\Z/i

ノート:

  • validates_format_of正規表現で検証できます
  • [[:graph:]]文字列で印刷可能な文字を確認できます(「文字クラス」を参照) 。
于 2013-03-18T18:47:19.417 に答える