Я переопределяю контроллер devise_invitable
и в своем методе создания хочу передать дополнительные значения шаблону электронной почты invitations_instructions
. Например, имя группы. Кто-нибудь добился успеха в этом, если да, пожалуйста, дайте мне несколько подсказок здесь.
что я пробовал...
мой @group
в моем Users::InvitesController < Devise::InvitationsController
create method не определен в email шаблоне.
пытался добавить :skip_invitation => true
в моем create и затем отправить письмо вручную, как...
self.resource = resource_class.invite!(params[resource_name], current_inviter, :skip_invitation => true)
::Devise.mailer.invitation_instructions(self.resource).deliver
но это дает неправильное количество аргументов, так что я что-то неправильно читаю из документации.
UPDATE - возможное решение
Единственный способ кажется таким, но мне интересно, есть ли лучший способ, который использует предоставленные шаблоны и создает mailer
в моем /app/controller/users/InvitesController#create
(наследует от InvitationsController
)
self.resource = resource_class.invite!(params[resource_name], current_inviter) do |u|
u.skip_invitation = true
end
UserMailer.invitation_instructions(self.resource, current_inviter, @object).deliver
где UserMailer
- это мой общий (стандартный) мейлер действий, и происходит что-то вроде...
def invitation_instructions(resource, inviter, object)
@resource = resource
@object = object
@inviter = inviter
mail(:to => resource.email, :subject => 'New invitation from ' + inviter.first_name)
end