0

我有一个带有User如下模型的 rails 应用程序:

class User
  include Mongoid::Document
  include Mongoid::Timestamps
  include Mongoid::Paranoia

  field :email, type: String
  index({ email: 1 }, { unique: true })

  validates :email, presence:true, uniqueness:true
end

那是我的测试:

describe User do
  it 'has an unique email' do
    first_user = Fabricate(:user, email: 'test@fundbase.com')
    first_user.valid?.should be_true # good
    first_user.save
    first_user.delete

    second_user = Fabricate(:user, email: 'test@fundbase.com')
    second_user.valid?.should be_true # good
    second_user.save

    first_user.restore
    first_user.valid?.should_not be_true # fail
  end
end

最后一次测试在这里失败了。由于某种原因,未检查电子邮件字段的唯一性。关于如何强制恢复验证的任何提示?

4

1 回答 1

0

这可能是 paranoia 模块中的错误(实际上将在 Mongoid 的下一个主要版本中消失:http://mongoid.org/en/mongoid/docs/extras.html#paranoia 。如果您需要“复活”用户帐户,您可能需要添加自己的布尔字段,例如“启用”,您可以将其设置为 false 以禁用帐户。

于 2013-06-10T12:18:33.940 回答