Как правильно расширить Devise Recoverable?

Я хочу, чтобы модуль Recoverable отправлял письма-приглашения со ссылками для сброса пароля для моих пользователей (приложение доступно только по приглашению ), я частично объявляю методы в инициализаторе:

module Devise
  class Mailer
    def invite_new_user(record)
      devise_mail(record, :invitation_instructions)
    end
  end
end

module Devise
  module Models
    module Recoverable
      def send_invite_user_instructions!
        return unless status == User::STATUS_PENDING
        generate_reset_password_token!
        ::Devise.mailer.invite_new_user(self).deliver
      end
    end
  end
end

говорит, что у моей почтовой программы нет приглашения _нового _пользовательского метода (вывода консоли rails ):

1.9.2p290 :002 > user.send_invite_user_instructions! 
  User Load (1.4ms)  SELECT "users".* FROM "users" WHERE "users"."reset_password_token" = 'zMQK1CEXYupjNKpH8dph' LIMIT 1
   (0.3ms)  BEGIN
   (15.0ms)  UPDATE "users" SET "reset_password_token" = 'zMQK1CEXYupjNKpH8dph', "updated_at" = '2012-05-01 17:40:32.085256' WHERE "users"."id" = 59
   (4.5ms)  COMMIT
NoMethodError: undefined method `invite_new_user' for Devise::Mailer:Class

, но вызов имеет метод в том же сеансе консоли:

1.9.2p290 :003 > ::Devise.mailer.method_defined? 'invite_new_user'
 => true 

Что мне не хватает?

6
задан Grzegorz 1 May 2012 в 17:43
поделиться