2013-06-14 1 views
1

Новое для Rails, и я подключаюсь к API Mailchimp через Gibbon.настроить Devise для Mailchimp

Я хотел бы добавить подписчиков в мое приложение в список рассылки, если им не придется дважды подписать подтверждение. Поэтому я добавил API-адрес Mailchimp, когда новый пользователь создан внутри Devise :: RegistrationsController. Однако, я думаю, это должно быть добавлено, как только они подтвердятся из письма с подтверждением. Но я не вижу, где это сделать правильно в Devise :: RegistrationsController. Вот мой существующий код ... спасибо.

class RegistrationsController < Devise::RegistrationsController 


    def new 
     super 
    end 

    def create 

     super 

     if resource.save 

      # Add the new user email to Mailchimp 
      # double-optin is part of the Mailchimp API that sends/doesn't send a confirmation email 
      # in this case I'm already sending a confirm signup email 
      # which already informs them they'll be added to a mailing list 

      gb = Gibbon.new('my-mailchimp-api') 
      gb.list_subscribe({:id => 'my-mailchimp-list-id', 
           :email_address => resource.email, 
           :merge_vars => {:FNAME => resource.forename, :LNAME => resource.surname }, 
           :double_optin => "false"})    
     end 

    end 

    def edit 
     super 
    end 

    def update 
     super 
    end 

    def destroy 
     super 
    end 

    def cancel 
     super 
    end 

    protected 

    def update_needs_confirmation?(resource, previous) 
     super 
    end 

    def build_resource(hash=nil) 
     super 
    end 

    def sign_up(resource_name, resource) 
     super 
    end 

    def after_sign_up_path_for(resource) 
     super 
    end 

    def after_inactive_sign_up_path_for(resource) 
     super 
    end 

    def after_update_path_for(resource) 
     super 
    end 

    def authenticate_scope! 
     super 
    end 

    def sign_up_params 
     super 
    end 

    def account_update_params 
     super 
    end 
end 

ответ

1

Это довольно легко достичь, вы можете сделать это путем переопределения метода confirm! в модели пользователя:

def confirm! 
    super 
    do_some_mailchimp_stuff 
end 

Надеется, что это помогает!

+0

Это работает только в том случае, если модель подлежит подтверждению – alexandrecosta

+0

@alexandrecosta Да, но, учитывая, что matski сказал, что уже получил подтверждение пользователя, у него уже будет подтвержденная настройка. – DaveStephens