2016-11-10 4 views
0

Когда пользователь добавляет товары в свою корзину, для него не обязательно регистрироваться. Но когда он заходит в созданную тележку и попадает в «Оформить заказ» Я проверяю, (Rails, Devise - отправить пользователя после отправки формы

<%= 
    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 
+0

https://github.com/plataformatec/devise/wiki/How -Tos –

+0

Serioga, (нет) спасибо за минус. Но ссылка принимается. –

ответ

0

Я думаю, что этот код поможет вам:

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

Моя попытка: 'def after_sign_in_path_for (cart) redirect_to @cart и return end' Но получил' AbstractController :: DoubleRenderError в Devise :: SessionController # create' error ... –

+0

Но эта копия/вставка из ссылки, посланной этим другой разгневанный парень, сделал работу: 'after_filter: store_action def store_action return if request.get? if (request.path! = "/ Users/sign_in" && request.path! = "/ Users/sign_up" && request.path! = "/ Users/password/new" && request.path! = "/users/password/edit "&& request.path! ="/users/confirm "&& request.path! ="/users/sign_out "&& ! request.xhr?) # не хранить вызовы ajax store_location_for (: user, request.fullpath) end end' –

+0

просто скопируйте этот метод, не используйте какой-либо фильтр для этого в этом методе, вы поставили код r, как ваш метод получения, этот метод разработки – Sunny

Смежные вопросы