web-dev-qa-db-ja.com

Rails:値が存在する場合にのみフォーマットを検証する方法は?

フォーム値の形式を検証して、空の値を許可するか、特定の形式を要求したいと思います。

フォーマットに対して値を検証するには、これは正常に機能します。

validates :application_bundle_identifier, :format => {
  :with => /^[a-zA-Z0-9.-]+$/,
  :message => "A bundle identifier should contain only alphanumeric (A-Z,a-z,0-9), hyphen (-), and period (.) characters."
}

ここで、ユーザーが値をまったく入力しないようにします。この場合、正規表現を^[a-zA-Z0-9.-]*$に微調整することはできますが、これはあまり良いRails-wayではないようです。形式によっては、それが不可能であるか、少なくとも明確ではない場合があります。

この場合のベストプラクティスは何ですか?

35
Guillaume

オプション:allow_blank => trueを使用して、属性が空白/空/ nilの場合に検証をスキップできます。

76
Jordan Running