Ruby on rails RSpec未重新加载或未保存对象

Ruby on rails RSpec未重新加载或未保存对象,ruby-on-rails,rspec,Ruby On Rails,Rspec,我面临着rspec的问题 这是我的测试代码: describe "email address with mixed case" do let(:mixed_case_email) { "Foo@ExAMPle.CoM" } it "should be saved as all lower-case" do @user2 = FactoryGirl.create(:user, email: 'aaaa@aaa.com') @user2.email = mixed_cas

我面临着rspec的问题

这是我的测试代码:

describe "email address with mixed case" do
  let(:mixed_case_email) { "Foo@ExAMPle.CoM" }

  it "should be saved as all lower-case" do
    @user2 = FactoryGirl.create(:user, email: 'aaaa@aaa.com')

    @user2.email = mixed_case_email
    p @user2.email
    p @user2.save!
    p @user2.email
    p @user2.reload.email
    expect(@user2.reload.email).to eq mixed_case_email.downcase
  end
end
我的终端输出:

"Foo@ExAMPle.CoM"
true
"aaaa@aaa.com"
"aaaa@aaa.com"
我的用户模型:

#encoding: UTF-8
class User < ActiveRecord::Base
  devise :database_authenticatable, :registerable,
     :recoverable, :rememberable, :trackable,
     :validatable, :confirmable, :lockable,
     :timeoutable, :omniauthable

  before_validation { self.email.downcase! if self.email }

  validates :email, presence: true, length: {:maximum => 60}

end
看起来“重新加载”或“保存”不起作用。不知道我能做什么。在其他项目中进行相同的测试,但没有设计。这可能是这个问题的原因吗?

这是设计:

Desive不允许您在未经确认的情况下更改电子邮件。当您设置另一封电子邮件时,设备会将其保存在未确认的电子邮件中,生成确认令牌并发送电子邮件进行确认。因此,您与gem design功能存在冲突


不确定,但我想你可以检查未确认的电子邮件是否在保存后被关闭,这正是我要做的。非常感谢。