rakeタスクに引数を与える
はじめに
Rakeタスクに引数を与えて実行したい、と思うことは割と頻繁にあると思います。しかしながら、Rakeタスクの引数ってどういうのだっけ? と疑問に思ったところで、調べるのも面倒になり、最終的には環境変数でいいや、というのがRails開発あるあるかと存じます。
実装
Rakeタスクに対する引数は、コマンドに続くカッコで行います。
$ bundle exec rake import:json[path/to/json]
これに対して、タスクの定義は以下の通りです。
複数ある場合は、その数だけ続けます。
[第一引数,第二引数,第三引数 …]といった形です。ちなみにコンマの前後にスペースを入れるとエラーになります。引数と引数の間はコンマのみ、常にギチギチにしておく必要がございます。
$ bundle exec rake import:jsons[path/to/json,path/to/json]
可変長の引数を利用したい場合は、argsをto_aします。
$ bundle exec rake import:jsons[path/to/json,path/to/json]
ちょっと変な感じがしないでもないですが、この辺りは慣れなのだと思います。