设计可确认 - 欢迎辞

时间:2011-11-21 03:31:33

标签: ruby-on-rails devise

所以我在用户注册网站时设置了欢迎消息 - 之前我使用gmail进行了设置(http://stackoverflow.com/questions/5793296/rails-actionmailer-w-devise-google-应用程序在开发模式),但它将使用谷歌应用程序 - 所以如果我是正确的另一个stackoverflow用户声称设置是类似的,所以这不是一个问题。但是因为我只想要一封欢迎电子邮件,我想我可以使用确认设置让他们收到一封电子邮件,然后在配置中设置它以便用户不必确认直到说了1000年之后大,所以基本上它不是一个真正的确认电子邮件? (如果有更好的方法,我会很感激这样的输入)

2 个答案:

答案 0 :(得分:4)

您无需扭转“可确认”功能即可实现此目的,您可以使用ActiveRecord::Observer更优雅地完成此操作。基本上,当您注册/保存用户时,观察者将收到通知,您可以从那里致电邮件。你可以在下面看到一个例子。

应用/邮寄者/ user_mailer.rb

class UserMailer < ActionMailer::Base
  default from: "something@something.com"

  def welcome_mail(email)
    mail(:to => email, :subject => "Welcome to Something").deliver
  end
end

应用/模型/ user_observer.rb

class UserObserver < ActiveRecord::Observer
  # We check if it's a new user
  def before_save(user)
    @is_new_record = user.new_record?
    true
  end

  def after_save(user)
    # If it's not a new user we don't want to send them another welcome email
    if @is_new_record then
      UserMailer.welcome_mail(user.email)
    end
  end
end

最后,您需要配置rails来注册观察者。

config / application.rb (仅提取)

config.active_record.observers = :user_observer

答案 1 :(得分:0)

它的回答可能非常晚,但我认为还有以后的回调来缩小上面的解决方案,因为你不需要检查它是否是新记录!