반응형
Rails 4 before_action, 호출 된 메소드에 매개 변수 전달
다음 코드가 있습니다.
class SupportsController < ApplicationController
before_action :set_support, only: [:show, :edit, :update, :destroy]
....
set_support
4 개의 뷰 메소드 모두에 적용 할 메소드 에 문자열을 전달할 수 있습니까? set_support
뷰의 각 메서드에 대해 메서드에 다른 문자열을 전달할 수 있습니까?
before_action only: [:show, :edit, :update, :destroy] do
set_support("value")
end
람다를 사용할 수 있습니다.
class SupportsController < ApplicationController
before_action -> { set_support("value") },
only: [:show, :edit, :update, :destroy]
...
짧고 한 줄짜리 답변 (내가 개인적으로 콜백에 선호 함 )은 다음과 같습니다.
before_action except:[:index, :show] { method :param1, :param2 }
다른 예시:
after_filter only:[:destroy, :kerplode] { method2_namey_name(p1, p2) }
다음 before_action
과 같이 람다를에 전달 params[:action]
하고 set_support
메서드에 전달할 수 있습니다 .
class SupportsController < ApplicationController
before_action only: [:show, :edit, :update, :destroy] {|c| c.set_support params[:action]}
....
그런 다음 전송되는 PARAM은 문자열 중 하나입니다 : 'show'
, 'edit'
, 'update'
또는 'destroy'
.
SupportsController
class SupportsController < ApplicationController
before_action only: [:show, :edit, :update, :destroy] { |ctrl|
ctrl.set_support("the_value")
}
...
ApplicationController
class ApplicationController < ActionController
def set_support (value = "")
p value
end
...
참고 URL : https://stackoverflow.com/questions/19260288/rails-4-before-action-pass-parameters-to-invoked-method
반응형
'IT TIP' 카테고리의 다른 글
파일이 링크되는 아키텍처가 아닌 아카이브 용으로 빌드되었습니다 (i386). (0) | 2020.10.20 |
---|---|
마스터 데이터베이스에 기록 된 데이터베이스 소유자 SID가 데이터베이스 소유자 SID와 다릅니다. (0) | 2020.10.20 |
Android AppCompat 21 Elevation (0) | 2020.10.20 |
Angular 2 사이트에서 브라우저 캐시를 방지하는 방법은 무엇입니까? (0) | 2020.10.20 |
문자열 변수의 N 번째 단어 (0) | 2020.10.20 |