Mam zupełnie nową aplikację Rails 4.1.1, w której dostosowuję wiadomości e-mail od Devise. Chcę mieć je wyświetlane na funkcję podglądu email nowe Rails tak zrobiłem następujące:Rails 4.1 Mailer Podgląd i tworzenie niestandardowych wiadomości e-mail
1) Dodano następujący fragment mojego config/development.rb
pliku:
config.action_mailer.preview_path = "#{Rails.root}/lib/mailer_previews"
2) utworzona mój zwyczaj Opracować email UserMailer
w app/mailers/user_mailer.rb
:
class UserMailer < Devise::Mailer
helper :application # gives access to all helpers defined within `application_helper`.
include Devise::Controllers::UrlHelpers # Optional. eg. `confirmation_url`
layout "notifications_mailer"
end
3) zmieniony config/initializers/devise.rb
zawierać następujące fragmentu:
config.mailer = 'UserMailer'
4) Dodano klasę UserMailerPreview
do lib/mailer_previews
o następującej treści:
class UserMailerPreview < ActionMailer::Preview
def confirmation_instructions
UserMailer.confirmation_instructions(User.first, {})
end
def reset_password_instructions
UserMailer.reset_password_instructions(User.first, {})
end
def unlock_instructions
UserMailer.unlock_instructions(User.first, {})
end
end
Tak daleko, tak dobrze. Wygląda na to, że wszystko zrobiłem dobrze. Ale staram się zobaczyć podgląd na e-mail w/szyny/koperty/user_mailer/droga confirmation_instructions confirmation_instructions
i pojawia się następujący błąd:
undefined method `confirmation_url' for #<#<Class:0x007fa02ab808e0>:0x007fa030fb7e80>
kod dla mojego confirmation_url.html.erb
szablon wygląda tak:
<%= t("notifications.texts.greeting") + @user.display_name %>,
<p>You can confirm your account email through the link below:</p>
<p><%= link_to 'Confirm my account', confirmation_url(@resource, :confirmation_token => @token) %></p>
Co robię źle? Domyślam się, że jest coś złego w sposobie, w jaki nazywam metodę confirmation_url
. Czy ktoś może mi tutaj pomóc?
Gdzie nazywasz' potwierdzenie_url'? Czy możesz udostępnić odpowiedni kod w miejscu, w którym pojawia się ten błąd. –
ah, w widoku. Zaktualizowano wpis – rodrigoalves
Podążałem za sugestiami @ steel i działałem. Musiałem też zrestartować serwer, aby zmiany zaczęły obowiązywać. – Besi