我在 Rails 4.0.3 应用程序上使用 Devise 3.2.3
在我的用户模型中,我有一个after_create: subscribe
为新用户订阅时事通讯的回调。每次新用户尝试确认他们的电子邮件时,我都会介绍此回调,然后他们会收到confirmation token is invalid
消息。尽管如此,重新发送确认电子邮件中的确认链接仍然有效。
我显然可以避免使用:after_create
回调,但这很痛苦。
User.rb:
class User < ActiveRecord::Base
devise :database_authenticatable, :registerable,
:recoverable, :trackable, :validatable,
:confirmable, :rememberable
has_many :things
belongs_to :city
validates_presence_of :city_id
validates :email, :presence => true, :email => true
after_create :subscribe
def subscribe(frequency = :weekly)
if [:weekly, :monthly].include? frequency
response = Rails.configuration.mailchimp.lists.subscribe({
id: get_list_id(frequency),
email: { email: email },
merge_vars: { HASH: hashify(frequency), USER_ID: id }, # generate approptiate hash
double_optin: false
})
# response
end
update_attributes(newsletter_frequency: frequency.to_s)
response
end
end