Ruby On Rails Devise:如何在注册和重写期间避免电子邮件唯一性验证,仅当角色为“ X”时检查它是否唯一]] << [

问题描述 投票:0回答:2
我想中断我的Rails应用程序中的默认注册操作,更改电子邮件验证。我需要的是仅在该用户已经注册并且具有角色'X'的情况下,使电子邮件字段唯一。

我尝试了以下操作,但我的应用程序返回了"Email has already been taken"消息:

验证:

validates_uniqueness_of :email, {allow_blank: true, if: :already_exists_as_x?} def already_exists_as_x? User.where(email: self.email, role: :X).exists? end

((我将很乐意为您提供帮助)

我想中断我的Rails应用程序中的默认注册操作,更改电子邮件验证。我需要做的就是只有该用户已经注册并且角色为'X'...

ruby-on-rails ruby registration validates-uniqueness-of
2个回答
0
投票
假设您的模型包括Devise的:validatable模块,您可以从模型中删除此模块,并根据需要编写自己的验证。

在您的模型中(例如user.rb),您的设计调用包含:validatable像:


0
投票
如果使用的是Rails 5,则需要在用户模型中重写以下方法
© www.soinside.com 2019 - 2024. All rights reserved.