背景
APIの実装する場合など、pathにプレフィックスがつくことが多い(api
やv1
など)。その場合に、rails g controller
でそのディレクトリ配下にコントローラーを作成する方法がわからなかかったので調べてみました。
パスの指定方法
作成方法は2通りあるようです。
(今回は、app/controllers/api/v1/
配下にtests_controller.rb
作ることとします。)
/で区切るパターン
1 | $ rails g controller api/v1/tests |
namespace(::)で区切るパターン
1 | $ rails g controller api::v1::tests |
不要なファイルを生成しないための方法
今回はAPIなので、viewファイルなどは不要でした。なので、generatorのオプションでviewファイルを生成しないようにできないかを調べてみました。helpを見てみます。
1 | Usage: |
今回は--no-helper
と--no-request-specs
を指定してみます。
1 | $ rails g controller api/v1/tests --no-helper --no-request-specs |
APIなのでviewsディレクトリも不要なのですが、ジェネレータのオプションで生成を制御できないようだったので、生成後削除しました。
まとめ
今回はジェネレータを使って特定のディレクトリ配下にcontrollerを作成する方法について調べてみました。
ヘルプを見ればわかる話でしたが、2通りの方法があることがわかりました。
また、ジェネレータ実行時のオプションについても調べました。
ジェネレータは便利ですし、カスタムジェネレータの作成もできます。
いろいろ便利なので、深く掘って理解したいと思います。