2016-07-13 8 views
0

Я пытаюсь отправить электронное письмо, когда пользователь отправляет сообщение. Вот что соответствующая часть моей создать действие выглядит в пост управления:Rails Mailer call messes up controller routes

if @post.save 
     UserMailer.alert_response(@post, @user).deliver 
      respond_to do |format| 
       format.js { render layout: false, content_type: 'text/javascript' } 
      end 

     else 
     respond_to do |format| 
      format.js { render layout: false, content_type: 'text/javascript' } 
      end 
      # redirect_to root_url 
    end 

и у меня есть create.js.erb файл, который визуализируется ли сохраняет пост или нет. Метод alert_response в моем контроллере UserMailer выглядит следующим образом:

def alert_response(post, user) 
    @response_post = post 
    @parent = post.parent 
    @parent_user = @parent.user 
    @user = user 
    mail to: @parent_user, subject: "Someone Responded to Your Post" 
    end 

Когда я не включаю UserMailer.alert_upvotes (@post, @user) Поставлять в создании действий, все работает просто отлично. Файл create.js.erb отображается, и это все. Когда я его включаю, файл create.js.erb никогда не отображается, и по какой-либо причине действие индекса моего постконтроллера запускается, и представление индекса становится визуализированным. Что-то не так с моим вызовом UserMailer?

ответ

0

Выяснил это. Я должен был создать новый контроллер PostMailer с соответствующим действием в нем.