쉬운 질문이 있습니다. 컨트롤러로 여러 번 호출되는 도우미 메서드를 넣을 위치는 어디입니까?
내 컨트롤러 (user_controller)를 깨끗하게 유지하고 여러 번 호출되는 도우미 메서드 (check_permits)가 이면이 메서드를 user_helper에 넣을 수 있습니까?
그렇다면 ==> user_controller에서 어떻게 불러 낼 수 있습니까? check_permits를 단순히 호출하면 인식하지 못합니다.
==> 인 경우 도우미 메서드를 넣을 위치는 어디입니까?컨트롤러가 도우미를 호출합니다.
1
A
답변
0
application_helper.rb 파일에 전역 도우미 메서드를 넣을 수 있지만 하나의 컨트롤러에서만 사용할 수있는 경우 각 컨트롤러는 자체 도우미 파일을 가질 수 있습니다. app/helper (또는 app/controller/helper)를 살펴보십시오.
4
혼란스러운 용어를 사용하고 있습니다. 레일의 컨트롤러에는 헬퍼가 없습니다. 도우미는 뷰에 대한 것으로 정의됩니다. "helper"메서드 (http://api.rubyonrails.org/classes/ActionController/Helpers/ClassMethods.html 참조)를 사용하여 컨트롤러에서 도우미 메서드를 호출 할 수는 있지만 그게 사용자가 찾고있는 것이라고 생각하지 않습니다. 일반적으로 어쨌든 좋은 생각이 아닙니다.
은 당신이 아마 원하는 것은 하나 (1) 보호 방법으로 당신의 users_controller.rb에 직접 방법을 넣어하는 것입니다
class UsersController < ApplicationController
...
protected
def check_permits
...
end
end
당신이 그것을 호출하는 경우
또는 (2) application_controller.rb에 넣어 여러 컨트롤러에서.
또는 (3) 모듈로 라이브러리 파일에 넣고 필요한 모든 컨트롤러에 포함시킵니다. users_controller.rb에서 다음
module CheckPermits
protected
def check_permits
...
end
end
그리고 : : 예를 들어, lib 디렉토리/check_permits.rb을 만들 수 있습니다
class UsersController < ApplicationController
include CheckPermits
...
end
관련 문제
- 1. 부모 뷰 컨트롤러가 나는 "MAINVIEW"라는 이름의 뷰 컨트롤러가 viewDidUnload
- 2. 코드 내 다른 도우미를 사용하여 사용자 지정 도우미를 작성하는 방법
- 3. 레이크에서 도우미를 어떻게 사용합니까?
- 4. Zend Cronjobs가 컨트롤러를 호출합니다.
- 5. 헬퍼 ajax 도우미를 사용하여 BeginForm
- 6. 나는 액션 도우미를 만들려고 해요
- 7. 인스턴스 변수로 도우미를 테스트하는 레일?
- 8. Jinja2 :보기 도우미를 찾고 있습니다
- 9. Rails에서 루프 도우미를 만들려면 어떻게해야합니까?
- 10. 왜 CakePHP의 HTML 도우미를 사용합니까?
- 11. CodeIgniter에서 도우미를 확장하는 방법은 무엇입니까?
- 12. ErrorHanlder에서 javascript 도우미를 어떻게 포함합니까?
- 13. smarty에 도우미를 포함시키는 방법은 무엇입니까?
- 14. 일반 도우미를 통한 코드 계약
- 15. 레일에서 도우미를 알아낼 수 없습니다.
- 16. Ruby on Rails는 내가 만든 액션을 호출합니다.
- 17. 컨트롤러가 nsslider에 마우스가있을 때 컨트롤러가 알 수 있도록하는 방법
- 18. 다른 스레드에서 호출합니다.
- 19. 같은 ViewController를 반복해서 호출합니다.
- 20. Java가 com.apple.loginitems를 호출합니다.
- 21. Android : BaseAdapter에서 notifyDataSetChanged를 호출합니다.
- 22. JSF가 java.net.URLEncoder.encode() 메소드를 호출합니다.
- 23. Page.User는 데이터베이스를 호출합니다
- 24. UpdateAllViews도 OnSize를 호출합니다.
- 25. Google지도 풍선에서 facebox를 호출합니다.
- 26. Grails에서 Controller 메서드를 호출합니다.
- 27. PHP는 함수에서 함수를 호출합니다.
- 28. actionscript에서 javascript 함수를 호출합니다.
- 29. IronPython에서 Word.SaveAs 메서드를 호출합니다.
- 30. GWT JSNI에서 jquery를 호출합니다.