2

私はRuby on Rails 3.1を使用しています。メーラに関連する国際化を正しく処理する方法を知りたいと思います。メーラでi18n gemを使用する際のトラブル

上記のコードを使用することにより
class Users::Mailer < ActionMailer::Base 
    def custom(user) 
    ... 
    @test_email = t('test_email') 
    # I also tried to use '@test_email = I18n.t('test_email')' 
    end 
end 

:私は私のapp/mailers/users/mailer.rbファイルに...

... 
<%= @test_email.to_s %> 
... 

:それは私が持っている私のapp/views/users/mailer/_custom.html.erbファイルに...、...

です@test_email.to_s送信されたメールにテキストが表示されず(空白に見える)、I18n gemは何をすべきか正しく実行していないようです。 "目的"のメール本文にロケールメッセージを正しく表示するには、どうすれば問題を解決できますか?あなたはあなたの答えに投稿されたコードは、私のために動作しません

@volodymyrため


UPDATE

en: 
    hello: Test text!!! 

Test text!!!はまだ(それが空白になって)送信される電子メールに表示されていません。私は私のconfig/locales/defaults/en.ymlファイルに次のコードを追加することも試みました。試験のため

# Fragment of mailer 
def test_locale 
    @test_email = I18n.t('hello') 
    mail(:to => "<your_email_goes_here>", :subject => "test") 
end 

# Contents of test_locale.html.erb 
String, retrieved from I18n: <%= @test_email %> 

私はRailsのコンソールを使用する:ここ

+0

引用符で囲んでください。例: en: hello: "テストテキスト" –

+0

@volodymyr - 問題は引用符に関連していませんでした。 – user12882

答えて

1

は(レール3.1.0およびルビー1.9.3p0を用いI`m(2011年10月30日改訂33570))コード作業の一例である

MyMailer.test_locale.deliver 

だからかどうかを確認する必要があります。

  • エルブテンプレートファイル名はmailer`sメソッド名に
  • と一致する

      ローカライゼーション・ファイル内の引用符で文字列を囲むようにしてください:
    • ローカライズファイルに
    • 変数名を、レコードが対応しているメーラー方法とテンプレートファイルの試合で「ビュー」で
    • フォルダ名は、メーラー名

    UPDATEと一致しました:

    en: 
        hello: "Some text here" 
    
    +0

    あなたのコードは私にとってはうまくいかないようです。私は質問を更新した... – user12882

    +0

    多分私は解決策を見つけた。私はDelayed Jobの宝石を使用しています。私が仕事を再開した後(開発モードでは 'rake jobs:work')、仕事が始まりました。ありがとう。 – user12882

    関連する問題