如何在注册过程中检查设计模型的自定义参数的某些条件?

时间:2015-11-28 11:08:06

标签: ruby-on-rails devise

我使用devise创建了一个用户模型。我添加了一个自定义参数username,这是一个字符串。我想检查用户名是否必须以大写字母开头,如果没有,则发出提醒。我应该在users_controller.rb中添加什么?

1 个答案:

答案 0 :(得分:0)

<强>没有

如果您已设置了param sanitation,则无需进一步更改控制器。

您可以向用户模型添加验证:

class User < ActiveRecord::Base
  # ...
  # customize this to your requirements.
  validates :username, presence: true, 
                       length: 2, 
                       uniqueness: true
  validate :username_starts_with_uppercase

  private 

    def username_starts_with_uppercase
      unless username[0] == username[0].capitalize
        errors.add(:username, 'must begin with an uppercase letter.')
      end
    end
end