Rails验证格式并将任何其他字符更改为连字符?

时间:2011-01-26 19:36:01

标签: ruby-on-rails regex validation model hyphenation

我有这个型号:

class Tag < ActiveRecord::Base

  # Validations
  validates :name, :presence => true, :uniqueness => true, :format => /[a-z0-9\+\-]+/

end

我希望我的应用做的是将每个不是[a-z0-9\+\-]的字符更改为连字符。这有可能,怎么样?感谢。

1 个答案:

答案 0 :(得分:2)

您可以使用前置过滤器将其转换为预验证...

before_validation :convert_name

def convert_name
  self.name.gsub! /[^a-z0-9\+\-]/, '-'
end