Ruby on Rails表单验证:默认字段值

时间:2011-07-25 12:33:36

标签: ruby-on-rails activerecord

如何让Rails将“http://”值视为空白:如果值为“http://”,请不要验证网站字段并插入空字符串(不是“http://”)进入数据库?

在视图中:

<%= f.text_field :website, value: "http://" %>

模特:

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

1 个答案:

答案 0 :(得分: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