Chcę wywołać moje zadanie rake z konsoli. Czy to wykonalne? jeśli tak, jak to zrobić?
Wypróbowałem to na konsoli:
require 'rake'
Rake::Task['my_task'].invoke
ale daje mi ten błąd:
RuntimeError: Don't know how to build task
to tak, jakby grabie nie mogła znaleźć zadania.
jakakolwiek pomoc byłaby doceniona.
Dziękuję Ci
Edycja: używam szyn 2.3.5
.invoke
a.execute
, jeśli musisz uruchamiać zadanie kilka razy (na przykład sprawdzanie poprawności danych z aplikacją, której uruchomienie trwa zbyt długo), będziesz chciał wykonać.execute
zadanie..invoke(arg1, arg2,...)
Najłatwiej to zrobić, wykonując% x [ polecenie ] z irb. Nie jestem jednak pewien, czy chcesz to osiągnąć.
EDYCJA: Gorąco polecam używać
.invoke
tak, jak Daniel mówi w zaakceptowanej odpowiedzi.źródło
invoke
jest lepszy i wydajniejszy.Prosty sposób to:
Rails.application.load_tasks Rake::Task['my_task'].invoke
źródło
Używam i musiałem
rails 5.x.x
zrobić tę samą formęrails console
.Utworzyłem tutaj zadanie rake-
Oto polecenie, które pracowało dla mnie-
Załaduj
Rails.application.load_tasks
Pracował dla mnie!
źródło
Tylko uwaga, jeśli jesteś w konsoli railsów przez
rails c
, możesz po prostu wywołać / uruchomić metodę zadania rake przezirb(main):001:0> TaskClassName.new.my_task
źródło