2011-07-25 20 views
0

"http://"値を空白として扱うにはどうすればよいですか?値が "http://"の場合、ウェブサイトのフィールドを検証して空の文字列を挿入しないでください( "http://"ではない)をデータベースに追加しますか?ビューでRuby on Railsフォームの検証:デフォルトのフィールド値

モデルで
<%= f.text_field :website, value: "http://" %> 

validates :website, format: { with: /^https?:\/\/\S+/i }, allow_blank: true 

答えて

1

を使用できます。ifや:条件付きで(未テスト)を検証する場合を除き:

validates :website, format: { with: /^https?:\/\/\S+/i }, allow_blank: true, :unless => ['http://', 'https://'].include?(params[:website]) } 

使用して、before_saveコールバックを文字列を空白に変換する:

def before_save 
    self.website = "" if ['http://', 'https://'].include?(self.website) 

    true 
end 
+1

「include」を== – apneadiving

+0

@apneadivingと置き換える方がいいでしょうか?説明できますか? –

+0

は間違っていました:私はインクルージョンの原因をあまりにも早く読みました。私の悪いので+1 :) – apneadiving