如何让Rails将“http://”值视为空白:如果值为“http://”,请不要验证网站字段并插入空字符串(不是“http://”)进入数据库?
在视图中:
<%= f.text_field :website, value: "http://" %>
模特:
validates :website, format: { with: /^https?:\/\/\S+/i }, allow_blank: true
答案 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