Rails,Devise - 在提交表单后发回用户

时间:2016-11-10 12:12:37

标签: ruby-on-rails devise

当用户将产品添加到购物车时,他并不一定要登录。但是当他进入创建的购物车并点击“Checkout”时,我会检查他是否已登录:

<%=
    link_to_if(current_user.nil?, "Checkout", new_user_session_path) do
     link_to( "Checkout", new_order_path, method: :get)
   end
%>

因此,如果没有登录,我会重定向到new_user_session_path。问题是登录后他被重定向到index_path。我希望他被重定向回购物车。登录相同。

我正在使用Devise,所以我应该生成Devise控制器并从那里开始执行吗?应该怎么做?

注意:我正在使用当前购物车的模块:

module CurrentCart

  private

    def set_cart
      @cart = Cart.find(session[:cart_id])
    rescue ActiveRecord::RecordNotFound
      @cart = Cart.create
      session[:cart_id] = @cart.id
    end
  end

1 个答案:

答案 0 :(得分:0)

我认为此代码可以帮助您:

class ApplicationController < ActionController::Base
  def after_sign_in_path_for(resource)
     #place your route here
  end
end