我正在为应用程序添加一些新的验证。整个想法是确保当用户更新他们的用户名时不会违反我们的用户名政策。
这是验证器的当前咒语:
validates_format_of :username, with: /[0-9a-zA-Z_]+/,
on: :update,
if: lambda { |u| u.username_changed? }
即使有了这个验证,坏字符也能通过。
这是我正在使用的规格:
it "validates and does not update a user with an invalid username" do
user.update_attributes(username: "k~!tten")
expect(user.username).not_to eq "k~!tten"
end
对此的任何帮助将不胜感激。