😅
「Rakeタスクの引数にスペースがあるとエラー」について勘違いしてたこと
rakeタスクの引数にはスペースは不要、という感じで覚えていて次のように書いてました。
まあ確かにこれでも動くが…勘違いをしていました。
問題の前提
例えば、というタスクがあり、このタスクに対して引数を渡す場合、正しくない形式でスペースが含まれているとエラーが発生します。
誤った例:
このコマンドを実行すると、次のようなエラーメッセージが表示されます。
なぜ問題が発生するのか?
調べてみました。Rakeでは、タスク名の解析時にスペースが含まれていると、タスク名として認識されないため、エラーが発生するようです。(” “というタスクがない。)
解決策
タスク名と引数の間にはスペースを入れず、次のように記述すると動きます。
自分はここを勘違いしていて「引数同士もスペースを入れてはならない」と思っていました。これは問題なくて、関数と引数の間にスペースを入れないことが重要でした。
まとめ
- rakeタスクの関数と引数の間のスペースを開けないようにする
- 似たようなことを伝えてもらった時に、指している場所に誤解がないか検討する