#ruby-on-rails #devise #controller
#ruby-on-rails #разработать #контроллер
Вопрос:
Я использую gem gibbon для подключения пользователя моего веб-сайта devise к mailchimp, так что вот мой контроллер, и я не уверен, как я могу найти электронные письма пользователя
Пожалуйста, кто-нибудь, помогите мне
class SubscribeUserToMailingListJob < ActiveJob::Base
queue_as :default
require 'gibbon'
def perform(*args)
user = User.find(params[:id])
gibbon = Gibbon::Request.new(api_key: "40691025ef57db1d1be9530e5d6ed79d-us7")
gibbon.timeout = 10
gibbon.lists("f9acb10acd").members.create(
body:
{
email_address: user.email,
status: "subscribed"})
end
end
Комментарии:
1. К вашему сведению, это не контроллер.
2. О, да, так как я могу найти адрес электронной почты пользователя, который находится в пользовательской модели def subscribe_user_to_mailing_list SubscribeUserToMailingListJob.perform_later(self) end
3. Что вы имеете в виду, как я могу найти? Вы передаете пользовательский объект в аргументах. У пользователя есть электронная почта.
4. адрес электронной почты: User.email это дает мне неопределенный метод `email’ для #<Класс: 0x007ff618f68dd8>
5. подсказка: проверьте, что у вас есть в
args
Ответ №1:
Вы уже передаете пользователя в аргументы. Просто назовите его соответствующим образом.
def perform(user)
# now you can do
user.email