我们已经构建了一个新的应用程序,涉及一个长期的注册过程。我们正在使用Rails 3并使用以下方式设计身份验证:确认。
现在我们必须从旧系统导入大量现有用户。我们希望手动完成此操作以测试该过程。
所以问题是我们不想向这些用户发送确认电子邮件。
有关我们如何抑制电子邮件并仍然手动完成注册过程的任何建议?
的Dom
答案 0 :(得分:1)
查看confirmable
源代码,如果用户设置为在创建时确认,则好像不会发送任何电子邮件。
首先,您需要确定是否希望新创建的用户收到电子邮件。我建议在表单中添加一个复选框,或者将旧邮件地址与旧用户表交叉引用:
def create
# Form style
skip_email? = params[:user].delete(:skip_email)
# Old users style
skip_email? = !!OldUser.find_by_email(params[:user][:email])
@user = User.new(params[:user])
...
end
假设你已经完成了两个中的一个,你的布尔值为skip_email?
。现在你可以做到:
def create
skip_email? = true # See above
@user = User.new(params[:user])
@user.skip_confirmation!
if @user.save
...
end
end
skip_confirmation!
是Devise添加到User模型的方法。您可以找到Devise源代码here。