はじめに
通常はcontrollers/
以下に作成されてしまうコントローラーを、特定のディレクトリ以下に作成するコマンドです。
環境
OS: macOS Catalina 10.15.1
Ruby: 2.6.5
Rails: 6.0.2.1
通常
今回は、posts_controller
をindex
アクションとcreate
アクション付きで作成する場合を例にします。
通常は、以下のようにして作成しますがこのままではapp/controllers/
ディレクトリ内に作成されます。
$ rails g controller posts index create
これをcontrollers/api/v1/
内に作成したい場合は、以下のようにします。
api/v1/
以下に作成する場合
$ rails g controller api/v1/posts index create
もしくは
$ rails g controller api::v1::posts index create
どちらも同じように動作します。
※余談 不要なものをgeneratorで生成したくない場合
例えば、scssファイルとhelperファイルが不要だったりする場合は、以下のように設定すればOKです。
$ rails g controller api/v1/posts index create --no-assets --no-helper
もしくは、application.rb
で以下のよう作成したくないものに対してfalse
を設定するとコマンドで入力しなくても、作成されなくなります。
config/application.rb
config.generators do |g|
g.template_engine false
g.assets false
g.helper false
g.test_framework :rspec,
view_specs: false,
helper_specs: false
end
例えば、上記の設定では
- viewファイル(デフォルトでは
erb
) - assetsファイル(scss)
- helperファイル
- RSpecのviewとhelperに関するspec
がrails g
コマンドでは自動生成されなくなります。
おわりに
最後まで読んで頂きありがとうございました
どなたかの参考になれば幸いです