Я хочу использовать методы для перенаправления пользователя на определенную страницу, я бы поставил эти два метода и before_action :authenticate_user!
все в контроллер приложения, однако при запуске метода before_action он будет вызываться для всех действий, которые будут перенаправить мое приложение на неправильные маршруты. Должен ли я использовать before_action :authenticate_user!, except: [:after_sign_in_path_for, :after_inactive_sign_up_path_for]
, чтобы пропустить аутентификацию по этим двум методам?Как использовать before_action с методами after_sign_in_path_for и after_inactive_sign_up_path_for?
class ApplicationController < ActionController::Base
# Prevent CSRF attacks by raising an exception.
# For APIs, you may want to use :null_session instead.
protect_from_forgery with: :exception
before_action :authenticate!
def after_sign_in_path_for(user)
if user && user.is_a?(Vendor)
return edit_vendor_registration_path
elsif user && user.is_a?(Customer)
return dashboard_path
end
end
def after_sign_out_path_for(user)
if user && user.is_a?(Vendor)
return root_path
elsif user && user.is_a?(Customer)
return root_path
end
end
def authenticate!
if @current_user == current_customer
:authenticate_customer!
elsif @current_user == current_vendor
:authenticate_vendor!
end
end
end
Я столкнулся с этой ошибкой Filter chain halted as :require_no_authentication rendered or redirected
, я считаю, что программа как-то создал бесконечный цикл, который держать перенаправляется на dashboard_path.
Это означает, что метод before_action не должен влиять на эти два метода? но, я получаю перенаправление к неправильным маршрутам при использовании до действия и два метода в контроллере приложения – KhoaVo