从我自己的auth解决方案切换到Devise,我正在尝试与我的邮件服务Convertkit集成。 在确认用户之后,我正在尝试设计调用我的方法,但我不确定如何调用该资源。
我尝试了这两种解决方案: https://stackoverflow.com/a/25336930/6848493 https://stackoverflow.com/a/16423638/6848493
这是我的用户模型:
class User < ApplicationRecord
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable,
:confirmable, :lockable, :lastseenable, :timeoutable
validates :terms_and_privacy_policy,
acceptance: { accept: true }, on: :create, allow_nil: false
validates :first_name, presence: true
validates :last_name, presence: true
def confirm!
super
subscribe self
self.send_convertkit_failure unless @ck_response_code == 200
end
# Send email to admin in case of ConvertKit API failure
def send_convertkit_failure
UserMailer.convertkit_failure(self).deliver_now
end
这是我的用户帮助:
module UsersHelper
def subscribe(user)
response = HTTParty.post("https://api.convertkit.com/v3/forms/form/subscribe",
query: {email: user.email, first_name: user.name, course_opted: true, api_secret: 'my secret' })
@ck_response_code = response.code
end
end
没有错误消息,它确认用户没问题,但它没有订阅他们转换。我尝试了相同的代码,但有资源 作为对象,但会引发错误。
至于第二种方法(写入after_confirmation),错误表示用户已经被确认。
非常感谢您的意见,提前谢谢。
答案 0 :(得分:0)
最后在我的用户模型中使用了这个:
# Override Devise::Confirmable#after_confirmation
def after_confirmation
subscribe self
self.send_convertkit_failure unless @ck_response_code == 200
end