ruby-on-rails - Rails 3 - 如何跳过验证规则?

标签 ruby-on-rails ruby validation twitter model

我有这个验证规则的注册表单:

  validates :email, 
    :presence => {:message => 'cannot be blank.'}, 
    :allow_blank => true, 
    :format => {
      :with => /\A[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]+\z/, 
      :message => 'address is not valid. Please, fix it.'
    }, 
    :uniqueness => true

此规则检查,如果用户填写注册表单电子邮件地址(+其正确格式)。

现在我正尝试添加使用 Twitter 登录的机会。 Twitter 不提供用户的电子邮件地址。

在这种情况下如何跳过上面的验证规则?

最佳答案

您可以在代码中保存用户时跳过验证。不要使用 user.save!,而是使用 user.save(:validate => false)。从 Railscasts episode on Omniauth 中学到了这个技巧

关于ruby-on-rails - Rails 3 - 如何跳过验证规则?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12661413/

相关文章:

ruby-on-rails - Rspec 发布错误数量的参数(给定 2,预期 1)请求规范时间相关

ruby - 为什么 bash -l -c "CMD"让 ruby 找到我的 gem ?

ruby-on-rails - 警告无法确定响应正文的内容长度。设置响应的内容长度或设置 Response#chunked = true

ruby-on-rails - 使用 Hotwire Rails 广播到用户的 Turbo Stream

ruby-on-rails - 如何处理 xor 条件、rails、外键和 sqlite 数据库?

ruby-on-rails - rails 3.2.13 : API Integration Test with Authorization Failure

asp.net-mvc - 如何根据多个条件创建所需的属性?

c# - FluentValidation 正在请求 IValidator<string>

ruby-on-rails - 唯一性验证不起作用

css - 如何消除我的 Rails 网站中标题栏和页面顶部之间的空白