【问题标题】:Rails - Email controller redirect confusionRails - 电子邮件控制器重定向混乱
【发布时间】:2012-04-02 08:34:36
【问题描述】:

我有一个处理联系电子邮件的控制器。我有这样的动作:

def representative
    @contact = UserContact.new()
    if request.method == 'POST'
     @contact = UserContact.new(params[:merchant_contact])
     if @contact.valid?
      @contact.contact_email = current_user.email
      @contact.contact_phone = current_user.phone_number
      Emailer.representative_contact(@contact, representative).deliver # sends the email
          redirect_to **????**, :flash => { :notice => "Thank you! Someone will get back to you shortly."}
     else
      render :representative
     end
    else
     render :representative
    end
end

我从代码中的不同位置调用 contact_representative_path,我希望在提交重定向到用户单击 contact_representative_path 的位置后这样做。我曾尝试使用 :back,但它只是呈现代表性视图。

【问题讨论】:

    标签: ruby-on-rails redirect referer


    【解决方案1】:

    redirect_to 和 return 不会结束请求,为了结束请求你需要在最后添加 return。

    试试redirect_to contact_representative_path,:flash => { :notice => "Thank you! Someone will get back to you shortly."} and return

    更新

    在会话哈希中,您可以存储请求 URL,该 URL 将在多个请求中可用。 session[:return_to] ||= request.referer 然后拨打redirect_to session[:return_to], :flash => { :notice => "Thank you! Someone will get back to you shortly."}

    检查this question,希望这能解决您的问题。

    【讨论】:

    • 那没有回答我的问题。我想从我来的地方回来。您的建议将始终重定向到contact_representative_path。
    • 我想我错过了你问题的最后一部分,编辑了我的答案。
    猜你喜欢
    • 1970-01-01
    • 2018-04-13
    • 2016-06-30
    • 2012-11-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-04
    • 1970-01-01
    相关资源
    最近更新 更多