我在我的简单应用程序上使用 :validatable 设置了 Devise,但如果发现错误,我似乎无法停止注册注册表单。
用户.rb:
class User < ActiveRecord::Base
# Include default devise modules. Others available are:
# :confirmable, :lockable, :timeoutable and :omniauthable
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable
...
end
到目前为止,我有一个包含标准名称/电子邮件/密码/年龄字段的注册表单,当我提交表单时一切正常,不会失败。
但是,如果我尝试创建一个我知道会失败的新用户(例如,使用已存在的电子邮件创建一个用户),它仍然会尝试创建该用户,而不是重定向回注册表单,它将继续加载下一页,就好像它是有效用户一样!当然,此时,我收到一个错误,因为它尝试加载带有“current_user”代码的页面,但该用户不存在。
我从哪里开始追踪这个问题?不确定这是我安装 Devise 的方式还是其他原因?请帮忙。谢谢!
最佳答案
尚未使用 validatable,但您始终可以使用自己的一些验证:
validates :email, uniqueness: true
validates :email, presence: true
validates_format_of :email, :with => /\A([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})\Z/i, message: "valid email please"
关于ruby-on-rails - Rails、Devise、Validatable 不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36024297/