2012-03-21 26 views
1

我正在嘗試讓用戶提交將電子郵件發送給其他用戶的表單。一切工作正常,除了我試圖將電子郵件的正文存儲在一個變量中,以顯示在郵件的視圖中並且正在'無'。我成立了一個user_mailer.rb:在視圖中顯示Action Mailer變量會返回「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)導致'無'。但是,如果我做了如下操作:#{body}代替主題行,文本將呈現正常。

任何人都有任何線索怎麼回事?

+0

@用戶怎麼樣,它顯示正確嗎?可能是@body被rails使用,請嘗試重命名。 – gayavat 2012-03-21 08:48:24

+0

工作..我改變了變量名@內容/內容,一切都很好。您可以添加您的評論作爲答案,我會接受嗎? – kcurtin 2012-03-21 12:40:30

+0

是的,當然=)。謝謝 – gayavat 2012-03-21 12:43:50

回答

1

@ user怎麼樣,它顯示正確嗎?可能是@body被rails使用,請嘗試重命名。