-
Notifications
You must be signed in to change notification settings - Fork 552
Integration with postmark rails ( or any ActionMailer adapter )
webdevotion edited this page Feb 8, 2013
·
4 revisions
When you use postmark-rails ( and propably any other adapter for ActionMailer ),
you might run into a NoMethodError
when you use a custom ActionMailer
class.
NoMethodError - undefined method `invitation_instructions' for MyCustomMailerKlass:Class:
(gem) actionmailer-3.2.11/lib/action_mailer/base.rb:438:in `method_missing'
(gem) devise-2.1.2/lib/devise/models/authenticatable.rb:163:in `send_devise_notification'
(gem) devise_invitable-1.1.5/lib/devise_invitable/model.rb:168:in `deliver_invitation'
(gem) devise_invitable-1.1.5/lib/devise_invitable/model.rb:132:in `invite!'
(gem) devise_invitable-1.1.5/lib/devise_invitable/model.rb:240:in `_invite'
(gem) devise_invitable-1.1.5/lib/devise_invitable/model.rb:252:in `invite!'
To fix this, make sure you are including DeviseInvitable::Mailer
.
# app/mailers/my_custom_mailer_klass.rb
class MyCustomMailerKlass < ActionMailer::Base
include Devise::Mailers::Helpers
# this is the important line for devise_invitable functionality
include DeviseInvitable::Mailer
def weekly_mail
...
end
end
Don't forget to move the generated devise_invitable
views
from app/views/devise/
to app/views/my_custom_mailer_klass/
.
To generate the devise_invitable
views run rails g devise_invitable:views
.
The relevant views will appear in app/views/devise/
.
Your file structure should look like this:
app/views/my_custom_mailer_klass/
app/views/my_custom_mailer_klass/invitation_instructions.html.erb
app/views/my_custom_mailer_klass/invitations/edit.html.erb
app/views/my_custom_mailer_klass/invitations/new.html.erb