読者です 読者をやめる 読者になる 読者になる

Rails - allow_nilを使用する際の注意

Rails

フォームで指定された形式で入力してほしいけど必須入力項目では無いとき
validates_format_ofで未入力を許可しようと思ってもallow_nilではできない

validates_format_of :url, 
  :with => /[0-9A-Za-z_\/\-\.\:]/,
  :message => "が不当な形式です",
  :allow_nil => true

フォームで未入力だった場合は空文字として扱われるのでallow_nilでは通過できない

ifオプションを使って指定するらしい

validates_format_of :url, 
  :with => /[0-9A-Za-z_\/\-\.\:]/,
  :message => "が不当な形式です",
  :if => Proc.new{|record| !record.url.blank?}

ただRails2系からはallow_blankが実装されたので楽にできる

validates_format_of :url, 
  :with => /[0-9A-Za-z_\/\-\.\:]/,
  :message => "が不当な形式です",
  :allow_blank => true

RailsによるアジャイルWebアプリケーション開発 第4版

RailsによるアジャイルWebアプリケーション開発 第4版

  • 作者: Sam Ruby,Dave Thomas,David Heinemeier Hansson,前田修吾
  • 出版社/メーカー: オーム社
  • 発売日: 2011/12/01
  • メディア: 単行本(ソフトカバー)
  • 購入: 12人 クリック: 206回
  • この商品を含むブログ (40件) を見る