[RUBY-ON-RAILS] 컨트롤러에서 실행 레이크 작업
RUBY-ON-RAILS컨트롤러에서 실행 레이크 작업
나는 내 컨트롤러에서 레이크 작업을 실행하고 싶습니다. 이 작업을 수행 할 수있는 방법이 있습니까?
해결법
-
==============================
1.나는 ddfreynee에 동의하지만, 경우에 당신은 당신이 코드를 같이 볼 수 필요한 게 뭔지 알아요 :
나는 ddfreynee에 동의하지만, 경우에 당신은 당신이 코드를 같이 볼 수 필요한 게 뭔지 알아요 :
require 'rake' Rake::Task.clear # necessary to avoid tasks being loaded several times in dev mode Sample::Application.load_tasks # providing your application name is 'sample' class RakeController < ApplicationController def run Rake::Task[params[:task]].reenable # in case you're going to invoke the same task second time. Rake::Task[params[:task]].invoke end end
대신 이니셜 라이저에서 '레이크'와 .load_tasks을 요구할 수 있습니다.
-
==============================
2.나는 그것을 코드에서 레이크 작업을 호출하기 좋은 스타일을 찾을 수 없습니다. 난 당신이 레이크 작업 이외의 곳, 실행 및 레이크 작업 호출이 코드가하려는 작업에 대한 코드를 넣는 것이 좋습니다.
나는 그것을 코드에서 레이크 작업을 호출하기 좋은 스타일을 찾을 수 없습니다. 난 당신이 레이크 작업 이외의 곳, 실행 및 레이크 작업 호출이 코드가하려는 작업에 대한 코드를 넣는 것이 좋습니다.
이것은 (당신이 원하는 무엇을하는) 외부 레이크를 호출 쉽다는 장점이 있습니다뿐만 아니라, 그것은 또한 훨씬 쉽게 레이크 작업을 테스트 할 수 있습니다.
-
==============================
3.대신 컨트롤러에서 레이크 작업을 호출하려고, 당신이 실행하려는 어떤 논리가 포함 된 서비스 객체를 호출합니다.
대신 컨트롤러에서 레이크 작업을 호출하려고, 당신이 실행하려는 어떤 논리가 포함 된 서비스 객체를 호출합니다.
class SomeController < ApplicationController def whatever SomeServiceObject.call end end
... 그리고, 사용자 정의 레이크 작업에 대해 얘기하는 가정이 아니라 서비스 개체를 호출 있습니다 :
namespace :example do desc 'important task' task :important_task do SomeServiceObject.call end end
혹시 서비스 객체에 익숙하지 않은, 그들은 특정 작업을 수행 그냥 평범한 오래된 루비 클래스입니다. 기본 레이크 작업 중 일부를 호출하려는 경우 (즉 : DB : 마이그레이션) 내가보기 엔 컨트롤러에서 그런 종류의 일을하지 않는 것이 좋습니다 것입니다.
-
==============================
4.당신은 당신의 컨트롤러에서이 작업을 수행 할 수 있습니다 :
당신은 당신의 컨트롤러에서이 작업을 수행 할 수 있습니다 :
%x[rake name_task]
로 : name_task 당신의 작업의 이름입니다
from https://stackoverflow.com/questions/1170148/run-rake-task-in-controller by cc-by-sa and MIT license
'RUBY-ON-RAILS' 카테고리의 다른 글
[RUBY-ON-RAILS] 루비 1.9.3로 루비 - 디버그? (0) | 2020.02.13 |
---|---|
[RUBY-ON-RAILS] 요청이 AJAX 인 경우 레일 감지 (0) | 2020.02.13 |
[RUBY-ON-RAILS] 어떻게 레일에서 기본값을 설정하는 방법? (0) | 2020.02.13 |
[RUBY-ON-RAILS] 변수를 사용 YAML (0) | 2020.02.13 |
[RUBY-ON-RAILS] 어떻게 레일에서 다른 형식의 부분을 렌더링합니까? (0) | 2020.02.13 |