はじめに
この記事の概要
こんにちは、Rubyをメインで書いている株式会社TOKOSのツキヤです!
今回は、初学者の方だとあまり聞き馴染みの無いrakeタスクについて説明します!
最後まで読んだら、
・モデルを作成
・特定のレコードを削除
・メールの一斉送信
などなどを、ターミナル上の1コマンドで実行できる方法が分かります😎
対象読者
- rakeタスクについての概要を知りたい人
- 1コマンドで特定の処理を行いたい人
筆者の環境
技術等 | バージョン |
---|---|
使用パソコン | MacBook Pro |
ruby | 2.7.4 |
Rails | 6.1.4 |
rakeタスクとは?
簡単に説明すると、自分で設定したタスクをコマンドラインで実行できるものです。
では、タスクとは??🙄
タスクとは、自分が行いたい動作(モデルのCRUDなど)の一連のまとまりです!
このrakeタスクを使いこなすことで、ブラウザの画面以外から簡単に処理を行うことができたり、定期実行までもできるようになります💪
rakeタスクの作成
では早速、超簡単なrakeタスクを作りながら説明していきます!
今回は、Userモデルに新しくユーザー(カラムはnameのみ)を登録する処理を作ってみます。
ファイルの作成
$ rails g task SampleTask
まずは上記コマンドを打つことで、./lib/task/配下にsample_task.rbファイルが作成されます!
その際に各単語の最初の文字を大文字(パスカルケース)にして、コマンドを実行しましょう!
処理の記述
次に、sample_task.rbファイルを記述していきます!
namespace :sample_task do
desc "taro君を生成する"
task taro_create: :environment do
User.create(name: 'taro')
end
end
・2行目
descの後に、自由にこのタスクの説明文を記述します!
今回は、nameがtaroという文字のUserを作成するので、“taro君を生成する”としました。
・3行目
ここで、タスクの実行時の名前をつけます。
そして、:environmentと記述することで実際のRailsの環境(モデルへのアクセスなど)で実行することができます!
・4行目
ここで実際に行いたい処理を記述しています!
今回は1行と簡単ですが、if文やfor文を使って処理をゴリゴリかいちゃって大丈夫です💪
以上で実行のための準備は完了です、簡単ですね🥳
rakeタスクの実行
それではいよいよ作成したタスクを実行します。
まずは、タスクがちゃんと作成されているか確認してみます!
$ rake -vT
上記コマンドを打つと、デフォルトも含めたタスクの一覧がいっぱいターミナルに表示されます。
出力結果の中にsample_taskがあれば、問題無く作成されていることになります💪
それではrakeタスクを、下記コマンドで実行しましょう
$ rake sample_task:taro_create
エラーが出力されていなかったら、成功しているはずです!
$ rails cやDBにアクセスして、taroというユーザーが作成されているか確認してみてください。
以上がrakeタスクの作成 ~ 実行までの一連の流れとなります、お疲れ様でした🥳
終わりに
今回は、rakeタスクの簡単な概要と作成・実行方法について説明しました!
今回の説明を参考にして、自分なりのrakeタスクをバンバン作っちゃってください😎
要望がありそうでしたら、このrakeタスクを定期実行する方法についての記事を書こうと思いますので乞うご期待!!
また、更に使い勝手が良いrunnerについても後々記事にしようと思います!
Railsの勉強をしたい方はこの本が参考になるかと思いますので興味がある方は是非読んで見て下さい🙇♂️