私はまだRailsの学習曲線のかなり急なところにいるので、この質問のかなり単純な性質を謝ってください。しかし、Googleは非常に有用であると証明していません。メールテンプレート内の変数にアクセスするメール
私の問題はこれです。私はメーラーを呼んでいるコントローラーを持っています。 (下のコードスニペット) 私が渡すことができないような問題は、rhtmlページの値にどのようにアクセスしようとしても、エラーが出るか、まったく何も得られないということです。
これは(@personがうまく働いている@itemが働いていないものです。)コントローラの抜粋である
if params[:id] == 'username'
item_value = @user[:login]
elsif params[:id] == 'password'
item_value = @user[:new_password]
end
@item = { 'name' => params[:id], 'val' => item_value }
ApplicantMailer.deliver_forgot(@person.email, @person, @item)
これは、メーラー方法の抜粋です:
def forgot(recipient, person, item, sent_at = Time.now)
@subject = 'Site Password Retrieval'
@body['person'] = person
@body['item'] = item
@recipients = '[email protected]'
@from = CONTACT_EMAIL
@sent_on = sent_at
@headers = {}
logger.debug @body.to_yaml
end
これはRHTMLスニペットです:
Dear <%= @person.first_name %>,
You are receiving this email because you or someone else has used the lost <%= @item[:name] %> page from the login page.
Your <%= @item[:name] %> for your account is: <%= @item[:val] %>
私が言ったように、@ itemの値にアクセスしようとすると、@i tem.nameメソッドが見つからない場合、上記のバージョンを使用しても何も表示されません。
私はハッシュで作業していることを知っています&私がここに示したようにキーにアクセスしようとすると正しい方法だと思っていました。明らかに、私はここで何かを逃しています。
誰かが正しい方向に私を向けることができますか?ありがとう!
[:name]&item [:value]というアイテムを試してみました。 – Skittles