[RUBY-ON-RAILS] 매개 변수 before_filter
RUBY-ON-RAILS매개 변수 before_filter
나는이 같은 일을하는 방법이있다 :
before_filter :authenticate_rights, :only => [:show]
def authenticate_rights
project = Project.find(params[:id])
redirect_to signin_path unless project.hidden
end
내가 application_controller에 포함 된 도우미에 대한 방법을 복사 그래서 나는 또한, 다른 컨트롤러에이 방법을 사용하고 싶습니다.
ID 기호하지만 f.e. : 문제는 일부 컨트롤러에 프로젝트의 ID가 아니라고이다 :) 다른 모델 (ID 존재한다 : PROJECT_ID (도 A는
어떻게이 문제를 해결할 것인가? before_filter 액션에 매개 변수를 추가 할 수있는 옵션 (오른쪽 PARAM을 전달) 있는가?
해결법
-
==============================
1.나는 이런 식으로 할 거라고 :
나는 이런 식으로 할 거라고 :
before_filter { |c| c.authenticate_rights correct_id_here } def authenticate_rights(project_id) project = Project.find(project_id) redirect_to signin_path unless project.hidden end
어디 correct_id_here는 프로젝트에 액세스 할 수있는 관련 ID입니다.
-
==============================
2.몇 가지 문법 설탕 :
몇 가지 문법 설탕 :
before_filter -> { find_campaign params[:id] }, only: [:show, :edit, :update, :destroy]
또는 당신은 더 많은 공상을 얻을 것을 결정하는 경우 :
before_filter ->(param=params[:id]) { find_campaign param }, only: %i|show edit update destroy|
이 같이 쓸 수 있도록 그리고 레일 4 before_action, before_filter에 동의어 때문에, 도입 :
before_action ->(param=params[:id]) { find_campaign param }, only: %i|show edit update destroy|
NB
-> 루비 1.9에 소개, 람다 문자라고, 람다 의미
% 나 기호의 배열을 생성 할
-
==============================
3.제외 또는 : 일부 방법, 여기에 구문은 당신이 원하는 경우, @ 알렉스 '대답을 계속하려면 :
제외 또는 : 일부 방법, 여기에 구문은 당신이 원하는 경우, @ 알렉스 '대답을 계속하려면 :
before_filter :only => [:edit, :update, :destroy] do |c| c.authenticate_rights params[:id] end
여기.
-
==============================
4.내가 대신 할 일의 중괄호를 사용하여 블록 방법을 찾을 ... 끝은 깨끗한 옵션이 될 수 있습니다
내가 대신 할 일의 중괄호를 사용하여 블록 방법을 찾을 ... 끝은 깨끗한 옵션이 될 수 있습니다
before_action(only: [:show]) { authenticate_rights(id) }
before_action before_filter은 단지 바람직한 새로운 구문
-
==============================
5.이 작업을해야합니다 :
이 작업을해야합니다 :
project = Project.find(params[:project_id] || params[:id])
[: ID]가 아닌 경우는 PARAMS 해시 또는 리턴 PARAMS에있는 경우 [PROJECT_ID]이 PARAMS를 반환한다.
from https://stackoverflow.com/questions/5507026/before-filter-with-parameters by cc-by-sa and MIT license
'RUBY-ON-RAILS' 카테고리의 다른 글
[RUBY-ON-RAILS] 방법 "다음 게시물"내 쇼보기 "이전 게시물 '링크로 : 레일? (0) | 2020.02.23 |
---|---|
[RUBY-ON-RAILS] 어떻게 슬림 템플릿 내 커피 스크립트 엔진에 액세스 인스턴스 변수 (0) | 2020.02.23 |
[RUBY-ON-RAILS] 루비에서 객체 속성에 의해 UNIQ (0) | 2020.02.23 |
[RUBY-ON-RAILS] 어떻게 카피 바라의 체크 박스를 확인? (0) | 2020.02.23 |
[RUBY-ON-RAILS] 어떻게 레일 응용 프로그램에서 긴 ID를 사용 하는가? (0) | 2020.02.23 |