2012-03-21 17 views
1

ユーザーが電子メールメッセージを別のユーザーに送信するフォームを送信させようとしています。私はメーラーのビューに表示する変数に電子メールの本文を格納しようとしていて、 '無し'になっている以外、すべて正常に動作しています。私はuser_mailer.rbを設定します。アクションメーラー変数を表示すると "nil"が返されます

class UserMailer < ActionMailer::Base 
    default :from => "[email protected]" 

    def message_user(user, recipient, subject, body) 
@user = user 
@recipient = recipient 
@body = "#{body}" 
mail(:to => "#{recipient.name} <#{recipient.email}>", :subject => "Reelify message: #{subject}") 
    end 
    end 

、ここでは私のmessages_controller.rbです:

def new 
@user = current_user 

if !params[:receiver].blank? and !params[:subject].blank? and !params[:body].blank? 
    @recipient = User.find_by_name(params[:receiver]) 
    UserMailer.message_user(@user, @recipient, params[:subject], params[:body]).deliver 
    flash[:notice] = "This flash means it should work.. #{@user.name} #{@recipient.name}" 
end 

エンド

私はビューで@bodyを呼び出すと、それが空である(@body .inspect)の結果は 'nil'になります。しかし、件名の代わりに#{body}のようなことをすれば、テキストはうまく表示されます。

誰でも手掛かりがありますか?

+0

@ userについては、正しく表示されますか? @bodyはレールで使用されているかもしれませんが、名前を変更してみてください。 – gayavat

+0

私は変数名を@ content/contentに変更して、すべて正常です。あなたは答えとしてあなたのコメントを追加できますか?私はそれを受け入れますか? – kcurtin

+0

はい、必ず=)。ありがとう – gayavat

答えて

1

どのように@ユーザー、正しく表示されますか? @bodyはレールで使用されているかもしれませんが、名前を変更してみてください。

関連する問題