2017-09-28 5 views
0

donc je travaille sur un moteur de rails et généré un logiciel de messagerie qui a mis mon point de vue dansrails modèle manquant mailer moteur

app/ 
    views/ 
    my_engine/ 
     user_mailer/ 
     account_activation.html.erb 
     account_activation.text.erb 

pour configurer l'application factice pour afficher les aperçus que j'ai ajouté

test/factices/config/environnements/development.rb

config.action_mailer.preview_path = MSearcher::Engine.root.join('test/mailers') 

test/mailers/Previews/my_engine/user_mailer_preview.rb

module MyEngine 
    class UserMailerPreview < ActionMailer::Preview 
     def account_activation 
      User.first 
      UserMailer.account_activation(user) 
     end 
    end 
end 

maintenant si je crée mon logiciel de messagerie

/app/mailers/my_engine/user_mailer

module MyEngine 
    class UserMailer < Application Mailer 
     def account_activation(user) 
      mail to: user.email, subject: "Account Activation" 
     end 
    end 
end 

avec ce que je peux accéder à localhost: 3000/rails/expéditeurs de courrier/my_engine/users_mailer/account_activation

où j'obtiens l'erro Par conséquent, le comportement par défaut recherche mes modèles dans le dossier au-dessus de celui qui devrait l'être. Comment puis-je configurer le bon comportement?

Répondre

0

Ce que je fini par faire était lui indiquant où il pourrait trouver une mise en page

Lorsque j'ai produit mon logiciel de messagerie, il a créé une mise en page par défaut dans

app/ 
    views/ 
    layouts 
     my_engine/ 
     mailer.html.erb 
     mailer.text.erb 
    my_engine/ 
     user_mailer/ 
     account_activation.html.erb 
     account_activation.text.erb 

mais le modèle par défaut dans app/mailers/my_engine/application_mailer.rb

module MyEngine 
    class ApplicationMailer < ActionMailer::Base 
    default from: '[email protected]' 
    layout 'mailer' 
    end 
end 

Cette disposition devrait vraiment être « my_en gine/mailer ' Je ne sais pas pourquoi Rails ne le fait pas automatiquement mais cela résout le problème pour moi.