devise 提供哪些开箱即用的验证? (以及它们位于何处)
What validations does devise provide out of the box? (and where are they located)
我认为设计为用户 email
提供了 uniqueness: true
验证(虽然我不确定在哪里)。
我在 config/initializers/devise.rb
中发现了这个(近似)电子邮件验证正则表达式
# Email regex used to validate email formats. It simply asserts that
# one (and only one) @ exists in the given string. This is mainly
# to give user feedback and not to assert the e-mail validity.
config.email_regexp = /\A[^@\s]+@[^@\s]+\z/
以及在同一文件中验证密码长度:
# ==> Configuration for :validatable
# Range for password length.
config.password_length = 6..128
问题
devise 是否提供任何其他开箱即用的验证,如果有,我在哪里可以找到它们?
NB 想知道的唯一原因是我可以在 models/user.rb
中编写任何额外的验证并且我想保持代码干燥。
email
的唯一验证在数据库级别 https://github.com/heartcombo/devise/blob/81bf3ad8c1e3812448ba4588598493c8e80ecf10/lib/generators/active_record/templates/migration.rb#L15
在 运行 之后,您应该在 schema.rb
中看到设计生成器和迁移:
t.index ["email"], name: "index_users_on_email", unique: true
初始设计生成器将提供这些开箱即用的唯一索引:
add_index :users, :email, unique: true
add_index :users, :reset_password_token, unique: true
# add_index :users, :confirmation_token, unique: true
# add_index :users, :unlock_token, unique: true
我认为设计为用户 email
提供了 uniqueness: true
验证(虽然我不确定在哪里)。
我在 config/initializers/devise.rb
# Email regex used to validate email formats. It simply asserts that
# one (and only one) @ exists in the given string. This is mainly
# to give user feedback and not to assert the e-mail validity.
config.email_regexp = /\A[^@\s]+@[^@\s]+\z/
以及在同一文件中验证密码长度:
# ==> Configuration for :validatable
# Range for password length.
config.password_length = 6..128
问题
devise 是否提供任何其他开箱即用的验证,如果有,我在哪里可以找到它们?
NB 想知道的唯一原因是我可以在 models/user.rb
中编写任何额外的验证并且我想保持代码干燥。
email
的唯一验证在数据库级别 https://github.com/heartcombo/devise/blob/81bf3ad8c1e3812448ba4588598493c8e80ecf10/lib/generators/active_record/templates/migration.rb#L15
在 运行 之后,您应该在 schema.rb
中看到设计生成器和迁移:
t.index ["email"], name: "index_users_on_email", unique: true
初始设计生成器将提供这些开箱即用的唯一索引:
add_index :users, :email, unique: true
add_index :users, :reset_password_token, unique: true
# add_index :users, :confirmation_token, unique: true
# add_index :users, :unlock_token, unique: true