Rails字段验证无法按预期工作

时间:2013-03-20 13:14:17

标签: ruby ruby-on-rails-3 validation

我有一个带有一行名为screen_name的用户表,这是一个字符串。

在其他约束中,屏幕名称不应包含类似的字符。 ,& %@等 为此我构建了以下验证器:

validates :screen_name, presence: true,
          length: { maximum: 15 },
          uniqueness: { case_sensitive: false },
          format: { with: /\w+/ }

当我输入像foo.bar这样的屏幕名称时,它很高兴被接受并存储在数据库中。

我做错了什么?

# == Schema Information
#
# Table name: users
#
#  id              :integer          not null, primary key
#  name            :string(255)
#  email           :string(255)
#  created_at      :datetime         not null
#  updated_at      :datetime         not null
#  password_digest :string(255)
#  remember_token  :string(255)
#  admin           :boolean          default(FALSE)
#  screen_name     :string(255)    
#

1 个答案:

答案 0 :(得分:1)

更改您的验证,例如/^\w*$/

您可以像这样验证

validates_format_of :screen_name, :with => /^[A-Za-z0-9.&]*\z/