Ruby 파일 내부에서 응용 프로그램 컨트롤러 메서드를 호출하려면 어떻게해야합니까? 전통적인 MVC 아키텍처를 사용할 수 없습니다.Ruby 파일에서 ApplicationController 메서드 호출
감사합니다.
Ruby 파일 내부에서 응용 프로그램 컨트롤러 메서드를 호출하려면 어떻게해야합니까? 전통적인 MVC 아키텍처를 사용할 수 없습니다.Ruby 파일에서 ApplicationController 메서드 호출
감사합니다.
메소드가 응용 프로그램 컨트롤러와 다른 루비 파일 모두에서 호출되는 경우에는 해당 메소드를 다른 파일, 보통 PALO (Plain Old Ruby Object)로 옮겨야합니다. 그런 다음 컨트롤러에서 파일을 요구하고 다른 파일에서 사용해야합니다.
컨트롤러에 컨트롤러 관련 논리 만있는 것이 좋습니다. 컨트롤러 이외의 다른 것으로부터이 메서드를 호출하기 때문에, 컨트롤러와 관련된 로직이 엄격하게 적용되지 않아야하므로이 메서드를 옮길 수있는 절호의 기회입니다.
당신은 ApplicationController
의 방법이 있고 당신은 당신이 트릭 사용할 수 있습니다를 호출해야하는 경우 :
ApplicationController.new.#method_here
을하지만 당신은 더 나은 플러그인에 방법을 이동하고 대한 ApplicationController
에 전화 모범 사례. 여기
더 많은 정보는 :
How do I call controller/view methods from the console in Rails?
문제에 대한 가장 좋은 방법은 문제의 방법을 추출하고 lib/my_utils.rb
같은 모듈에 넣어하는 것입니다. 그런 다음
# lib/my_utils.rb
module MyUtils
def the_method_you_were_talking_about(args)
.. code ..
end
end
: 그럼 당신은 당신이 그것을 필요로 지금까지이 파일이 필요할 수 있습니다
# application_controller.rb
require 'lib/my_utils.rb'
MyUtils.the_method_you_were_talking_about("and any data you need to pass to it")
을 그리고 당신은 다른 루비 파일에서 같은 일을 할 것입니다.
당신은 ApplicationController에 메소드가있는 Rails 애플리케이션을 가지고 있고 프로젝트의 루비 파일에서 그 클래스에 대한 메소드를 호출하려고하지만 요청 사이클의 일부가 아니라는 것을 의미합니까? 질문을 분명히하십시오. –
ApplicationController를 보여 주시겠습니까? 문제의 메소드가하는 일과 다른 루비 파일이 실행되는 컨텍스트를 설명해 주시겠습니까? –