2014-09-30 15 views
6
class UserPreview < ActionMailer::Preview 
    # Accessible from http://localhost:3000/rails/mailers/notifier/welcome_email 
    def welcome_email 
    UserMailer.welcome_email(User.first) 
    end 
end 

Ho questa semplice anteprima di posta elettronica utilizzando Ruby on Rails 4.1.Quali sono i percorsi che devo impostare per visualizzare in anteprima le e-mail utilizzando Rails 4.1 ActionMailer :: Preview?

Se io commento, tutti i percorsi nel mio file routes.rb e lasciare solo questo, l'anteprima mailer funziona:

MyTestApp::Application.routes.draw do 

end 

Quindi, ovviamente, uno dei miei diritti si sta abituando prima che le rotaie di default per Mailer anteprime.

Cosa devo digitare nel file rb di percorsi?

risposta

15

So che questa è una vecchia domanda, ma ho pensato di pubblicare una risposta comunque.

Sto indovinando che hanno un percorso simile a questo verso la fine del file routes.rb:

match '/:controller(/:action(/:id))' 

Questo è un percorso 'catturare tutti'. Il codice di rotaie aggiunge le rotte di anteprima del mailer alla fine dei percorsi, quindi non vengono mai raggiunti a causa della rotta 'catch all'.

Sembra che il percorso "catch all" possa essere ritirato nelle guide 5.0? È probabilmente una buona idea rivedere i tuoi percorsi in modo da non aver bisogno di un 'catch all'. Ecco un link al problema in cui qualcuno menziona il "catch all" è in pensione a un certo punto: https://github.com/rails/rails/issues/15600

Quindi, ecco la soluzione. Utilizzare a proprio rischio!

Inserire i percorsi del mailer prima di "prendere tutto".

get '/rails/mailers' => "rails/mailers#index" 
    get '/rails/mailers/*path' => "rails/mailers#preview" 

Ciò consentirà ai vostri mailer di lavorare e il vostro "catch all" continuerà a funzionare. Ora, questo è un trucco completo che dovrebbe essere utilizzato solo fino a quando non si è in grado di risolvere il problema di root, eliminando la necessità del percorso "catch all".

Ho trovato il seguente elenco di problemi per le rotaie, che sembra essere stato accettato e unito. Non sono sicuro di quale versione sia, ma sembra che abbiano aggiornato il codice di anteprima del mailer per anteporre i percorsi invece di aggiungerli.

https://github.com/rails/rails/pull/17896/files

Buona fortuna!