【问题标题】:Require the email to be unique with Simple Form要求使用简单表单的电子邮件是唯一的
【发布时间】:2019-03-04 10:21:36
【问题描述】:

使用简单表单 gem,我怎样才能只允许用户在他们的电子邮件尚未用于提交表单时才提交表单。

【问题讨论】:

  • 在您的问题中添加一些代码。你试过什么?
  • 我在网上找到了这段代码 'validates :name, uniqueness: { case_sensitive: false }' 但我不知道该放在哪里。我试图把它放在后控制器和实际表单上。但它没有用。
  • 不用jQuery一定可以吗?
  • @FCD 在您的用户模型中。

标签: ruby-on-rails


【解决方案1】:

除了Venom's answer,我推荐使用唯一索引。

因为可能会出现同时使用同一电子邮件的请求的情况。他们将得到验证。在这种情况下,您将有重复。

为此目的进行约束。会是这样的

$ rails g migration AddIndexToObjects


class AddIndexToObjects < ActiveRecord::Migration
  def change
    add_index :objects, :email, unique: true
  end
end

【讨论】:

  • 是的,这个约束应该用于电子邮件,但他对在哪里以及如何使用验证感到困惑:电子邮件,唯一性:真。
  • 你读过这个问题吗? '如果之前没有在帖子中使用过该电子邮件,则将其发布。我该怎么做?'
  • 哦,是的,但我回答了关于验证的问题
【解决方案2】:

在有 email 字段的 model 中使用它,而在 controllernot,添加以下代码

validates :email, uniqueness: true

这段代码有什么作用?

这将阻止用户使用您的数据库中已经存在的电子邮件 ID。如果我是正确的,不要忘记检查正确。

谢谢。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-09-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-09
    • 2016-07-25
    • 1970-01-01
    相关资源
    最近更新 更多