Отображение переменной Action Mailer в представлении возвращает «nil» - PullRequest
1 голос
/ 21 марта 2012

Я пытаюсь разрешить пользователю отправить форму, которая отправляет электронное сообщение другому пользователю.Все работает нормально, за исключением того, что я пытаюсь сохранить тело письма в переменной, отображаемой в представлении почтовой программы, и получаю 'nil'.Я настроил user_mailer.rb:

class UserMailer < ActionMailer::Base
  default :from => "myemail@gmail.com"

  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

end

Когда я вызываю @body в представлении,пусто (@ body.inspect) приводит к 'nil'.Однако, если я сделаю что-то вроде: # {body} вместо строки темы, текст будет отображаться нормально.

У кого-нибудь есть какие-либо подсказки, что происходит?

1 Ответ

1 голос
/ 21 марта 2012

как насчет @ user, он отображается правильно?Может быть @body используется rails, попробуйте переименовать.

...