2014-09-01 116 views
0

我在我的用户模型中进行了验证,以避免用户名中出现特殊字符和空格。模型验证不适用于更新

顺便说一下,我有大约10000个用户已经注册,其中一些用户名中有空格。

这是我的验证

validates :username, format: { with: /\A[a-zA-Z0-9]+\Z/, message: "Non puoi avere spazi o caratteri strani nel tuo username" } 

如何添加例外:更新,等更新验证不解雇?

回答

2

如果您只创建,所以你可以做以下的确认工作:

validates :username, format: { with: /\A[a-zA-Z0-9]+\Z/, message: "Non puoi avere spazi o caratteri strani nel tuo username" }, on: :create 

或跳过验证,如果这个对象是不是新的纪录:

validates :username, format: { with: /\A[a-zA-Z0-9]+\Z/, message: "Non puoi avere spazi o caratteri strani nel tuo username" }, if: :new_record_object? 
def new_record_object? 
    self.new_record? 
end 

或者您可以在保存之前使用以下代码任何对象:

@user.save(validation: false) 

你可以阅读更多关于skipping validations