[RUBY-ON-RAILS] 어떻게 고안의 SessionsController에 대한 before_filter를 건너 뛰려면?
RUBY-ON-RAILS어떻게 고안의 SessionsController에 대한 before_filter를 건너 뛰려면?
내와 ApplicationController에 before_filter이있다; 그건 내 프로젝트의 모든 컨트롤러이다.
나는 행동을 만들 궁리의 SessionsController에 대해 어떻게 skip_before_filter 수 있습니까?
해결법
-
==============================
1.우리는 이런 일을했다 :
우리는 이런 일을했다 :
첫번째로, 자신의 세션 컨트롤러를 만들, 제대로 상속해야합니다 :
class SessionsController < Devise::SessionsController skip_before_filter :foobar
그런 다음 경로를 수정
devise_for :users, :controllers => { :sessions => "sessions" }
또는 당신은 원숭이 패치 고안의 세션 컨트롤러는 없습니다.
-
==============================
2.여기 내 동료가 날을 보여 주었다 방법이다 :
여기 내 동료가 날을 보여 주었다 방법이다 :
# In config/application.rb module YourAppNameHere class Application < Rails::Application # Whatever else is already here... # The part to add config.to_prepare do Devise::SessionsController.skip_before_filter :your_before_filter_here end end end
-
==============================
3.나는 최근에 내 application_controller에서 필터이 문제를 가지고 나는 skip_before_filter를 사용하여 해결
나는 최근에 내 application_controller에서 필터이 문제를 가지고 나는 skip_before_filter를 사용하여 해결
skip_before_filter :check_subdomain!, if: :devise_controller?
-
==============================
4.여기에 lib 디렉토리 / devise_sessions_controller_decorator.rb 또 다른 방법이있다 :
여기에 lib 디렉토리 / devise_sessions_controller_decorator.rb 또 다른 방법이있다 :
module DeviseSessionsControllerDecorator extend ActiveSupport::Concern included do skip_before_filter :your_filter_name end end Devise::SessionsController.send(:include, DeviseSessionsControllerDecorator)
클래스가 개발 모드에 캐시되지 않기 때문에, 당신은에 설정 / 환경 / development.rb 같은 것을 추가해야 할 수 있습니다 :
config.to_prepare do Devise::SessionsController.send(:include, DeviseSessionsControllerDecorator) end
-
==============================
5.내 동료가 나에게 내 다른 대답에 게시하는 방법을 보여 주었다 전에, 나는 이런 짓을. 나는 경우에이 게시하도록하겠습니다 당신은 간단하게 생각합니다.
내 동료가 나에게 내 다른 대답에 게시하는 방법을 보여 주었다 전에, 나는 이런 짓을. 나는 경우에이 게시하도록하겠습니다 당신은 간단하게 생각합니다.
class ApplicationController < ActionController::Base # ... before_filter :do_something def do_something unless params[:controller] == 'devise/sessions' # ... end end end
-
==============================
6.당신은 단순히 유증 컨트롤러 여부 필터 방식에서 확인할 수 있습니다.
당신은 단순히 유증 컨트롤러 여부 필터 방식에서 확인할 수 있습니다.
if params[:controller] != 'devise/sessions'
-
==============================
7.어떤 PARAMS하여 않는 블록 필터링에 대한 before_filter 배치 [: 컨트롤러]
어떤 PARAMS하여 않는 블록 필터링에 대한 before_filter 배치 [: 컨트롤러]
def some_before_action unless params[:controller] == "sessions_controller_for_devise_name" ... #=> do the stuff here end end
단지 필터 전에를 사용해야하는 행동인가
before_filter :action, :only => ...
하고 다른 사람을 승인합니다.
여기 발견
from https://stackoverflow.com/questions/6209663/how-to-skip-a-before-filter-for-devises-sessionscontroller by cc-by-sa and MIT license
'RUBY-ON-RAILS' 카테고리의 다른 글
[RUBY-ON-RAILS] 4 레일 - has_and_belongs_to_many 협회에 대한 확인란 (0) | 2020.02.26 |
---|---|
[RUBY-ON-RAILS] 4 레일 : 왜 글꼴이 생산에 로딩하지? (0) | 2020.02.26 |
[RUBY-ON-RAILS] RSpec에 컨트롤러 사양에서 사용하기 위해 소장 구성 (0) | 2020.02.26 |
[RUBY-ON-RAILS] 청산 세션에서 정지 고안 (0) | 2020.02.26 |
[RUBY-ON-RAILS] 원격 => 사실이 호출되지 JS 방법 : form_for 레일 (0) | 2020.02.26 |