Railsアプリ作成にてtaskによるコマンド入力だけでコントローラーのアクションを動かしたかったが、調べてもなかなか該当記事がなく、ようやくできたので備忘録として残しておきます。
使用ファイル【lib > tasks > scrape.rake】
namespace : scrape do
desc “scraping and save”
task article_save :: environment do
logger = Logger.new”log/recover_user_life.log”
ArticlesController.new.create
end
end
1行目 namespace : タスクファイル名 do
2行目 desc “このタスクの説明(ただの説明なので日本語でも良い)”
3行目 task このタスク名 :: environment do
4行目 logger = Logger.new”log/recover_user_life.log” エラーした時にログを残すために記述。
5行目 ArticlesController.new articleコントローラーを動かす。
.create createアクションを動かす。
これでターミナルから rails ファイル名:タスク名 とコマンドを打てばコントローラーが動かせます。(上記だと rails scrape:article_save)
フォームを使わず、自動でスクレイピングさせて直接createアクションを動かしたかった場合に使えました。
コメント