0
votes

I'm using devise-asyn gem with sidekiq backend, but when send some email, I get the following error:

ArgumentError (wrong number of arguments (given 3, expected 1..2)):

devise-async (0.7.0) lib/devise/async/model.rb:27:in `send_devise_notification'

any ideas how to fix it? thanks!

EDIT:

Some of my setup: I'm using Rails 5

Gemfile:

gem 'devise' ,'~> 4.1.0' 
gem 'redis-rails'
gem 'sidekiq'
gem 'sinatra', github: 'sinatra/sinatra', require: false
gem 'devise-async'

devise_async.rb intializer:

Devise::Async.setup do |config|
  config.backend = :sidekiq
  config.queue   = :mailer
end

User class (renamed it, it's called Usuario):

class Usuario < ApplicationRecord
  # Include default devise modules. Others available are:
  # :confirmable, :lockable, :timeoutable and :omniauthable
  devise :database_authenticatable, :async, :recoverable, :rememberable, :trackable, :validatable
 ...
end

sidekiq.yml config:

:queues:
  - default
  - [mailers, 2]

I'm running sidekiq with:

bundle exec sidekiq --environment development -C config/sidekiq.yml

Already restarted rails server, sidekiq and redis server, but still get the same error

1

1 Answers

0
votes

Use gem 'devise' ,'~> 4.1.0'

/config/initializers/devise_async.rb

Devise::Async.setup do |config|
  config.backend = :sidekiq
  config.queue   = :mailer
end

/app/models/user.rb

    class User < ActiveRecord::Base
    devise :database_authenticatable, :registerable,
         :recoverable, :rememberable, :trackable, :validatable,   :async, :confirmable 
   end

config/sidekiq.yml

:queues:
  - default
  - [mailers, 2]