2017-09-11 7 views
0

Rails 5では、メーラーファイルで定数をどのように認識できますか?私は、このファイル、アプリ/メーラー/ user_notifier.rbを持って私のメーラーファイルに定数を入れ直すにはどうしたらいいですか?

class UserNotifier < ActionMailer::Base 
    ... 

    # send notification email to user about the price 
    def send_confirmation_email(user_id) 
    @user = User.find(user_id) 
    mail(:to => @user.email, 
    :subject => Constants::EMAIL_CONFIRMATION_SUBJECT) 
    end 

end 

が、それはラインに到達したときに、 ":件名=>定数:: EMAIL_CONFIRMATION_SUBJECT)" それはエラーで

uninitialized constant Constants::EMAIL_CONFIRMATION_SUBJECT 
を死にます

私は私の設定で定義された定数を持っているという事実にもかかわらず/初期化子/ global.rb私はこれをどのように修正すればよい

module Constants 

    # Subject for email confirmations 
    EMAIL_CONFIRMATION_SUBJECT = "Please confirm your email." 

end 

を提出?

+0

初期化子ファイルは、アプリケーションの起動時にのみ解析されます。あなたがスプリングを使用している場合(これはデフォルトであり、あなたがそうすると仮定しています)、springが開始されたときのglobal.rb初期化子のバージョンを使用します。 Webサーバーを再起動する必要があります(レールの再起動またはtmp/restart.txtのタッチ)。また、sidekiqなどを使用している場合は、sidekiqを再起動する必要があります – bcd

答えて

0

定数の前にモジュール名を付ける必要はありません。定数はグローバルスコープで利用可能になります。

メール:

def send_confirmation_email(user_id) 
@user = User.find(user_id) 
mail(:to => @user.email, 
    :subject => EMAIL_CONFIRMATION_SUBJECT) 
end 

設定/初期化子/ global.rb

EMAIL_CONFIRMATION_SUBJECT = "Please confirm your email." 

私はそれがちょうどこの目的のために構築されていますので、あなたはRailsの中で国際化を使用することをお勧めするんだ、けれどもhttp://guides.rubyonrails.org/i18n.html

関連する問題