ruby-on-rails - Rails、Devise、Validatable 不起作用?

标签 ruby-on-rails validation ruby-on-rails-4 devise

我在我的简单应用程序上使用 :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/

相关文章:

ruby-on-rails - Rails fields_for 未显示

javascript - 我想知道如何在 javascript 中进行表单验证

validation - 如果 Grails 命令对象绑定(bind)不满足约束

ruby-on-rails-4 - config.active_record.default_timezone = :local . .. 似乎没有任何效果

ruby - some_method 的循环复杂度太高

javascript - Rails link_to 忽略 e.preventDefault();来自 jQuery 调用,因为方法 : :get is set

ruby-on-rails - Rails 渲染 json 包括带参数的方法

php - PHP 文档中的 javascript 验证问题

ruby-on-rails - Rails 缓存将阻止客户端的请求

ruby-on-rails - 如何在 Rails 中异步执行 Controller.destroy 操作?