Как настроить Devise Invitable для разных вариантов использования - PullRequest
0 голосов
/ 22 января 2019

Я пытаюсь следовать документации для Devise Invitable здесь , чтобы отправлять разные электронные письма для разных типов пользователей, в моем случае партнеры и клиенты .

Таким образом, в вашей модели Devise, которая в моем случае равна User.rb, говорится следующее:

....
  attr_accessor :invitation_instructions
....
    def self.invite_partner!(attributes={}, invited_by=nil)
      self.invite!(attributes, invited_by) do |invitable|
       invitable.invitation_instructions = :partner_invitation_instructions
      end
    end

    def self.invite_client!(attributes={}, invited_by=nil)
     self.invite!(attributes, invited_by) do |invitable|
       invitable.invitation_instructions = :client_invitation_instructions
     end
    end

Затем с моего контроллера, когда новый пользователь регистрируется, я звоню

....
if current_user.is_client?
  user.invite_client!(user, current_user)
else
  user.invite_partner!(user, current_user)
end

Когда я делаю это, я получаю ошибку

undefined method 'invite_client!' for #<User:0x007ffbcdfabd08>

Что немного сбивает с толку, поскольку метод определен в пользовательской модели, поэтому я думаю, что, по крайней мере, он был определен.

Любая помощь по исправлению этой ошибки и запуску этой настройки будет принята с благодарностью!

1 Ответ

0 голосов
/ 22 января 2019

Я думаю, что это методы класса, и вы должны вызывать его как User.invite_client!, а также передавать свои аргументы в метод.

То же самое относится к invite_partner!

...