からコントローラのアクションを呼び出します次のレーキタスク...は、私はアプリケーションコントローラで、次のしているrakeタスク
desc "Heroku task to get stuff"
task :get_stuff => :environment do
puts "Getting stuff from api..."
session = ActionDispatch::Integration::Session.new(Rails.application)
session.post "/posts/get_stuff"
puts "done."
end
ルートが正しいので、タスクを実行してもエラーは発生しません。しかし、私がタスクを実行すると、私のDB更新アクションは起こっていません。
同じアクションを呼び出すビューに簡単なbutton_toが設定されているため、このアクションは機能します。
私はそれが私の疑問です。すでにそこにあるロジックをコントローラにどのように呼び出すのですか?私は、ロジックがコード内にあることを知っています...この場合のコントローラ。ロジックをモデルに移動し、そこからクラスメソッドを使って呼び出すことができますが、コントローラのロジックを残しておくことは、自分がしたいことに適していると思います。安心して他のコントローラを呼び出す別の方法がありますか? – Lumbee
@ Lumbeeどのような種類のロジックに依存しますか。そのロジックを別の場所(モデルやサービスオブジェクトなど)に移動する方がよいでしょう –
私はそれを聞いています。質問に文脈とコードをもう少し追加します。うまくいけば、それは今より意味をなさない。 – Lumbee