rails g scaffodのコマンドを実行するとtestやhelperのような余分なファイルが生成されてしまう。
rails g scaffold book --<中略>-- invoke test_unit create test/controllers/books_controller_test.rb invoke helper create app/helpers/books_helper.rb --<中略>-- invoke assets invoke coffee create app/assets/javascripts/books.coffee
どうすれば余分なファイルを生成せずに済むのか調べたところ、 どうやらconfig/application.rbの中身を書き換えればできるようだ。
config.config.generatorsメソッドを活用すればいけそうだ。
config.generatorsメソッドを使用して、Railsで使用されるジェネレータを変更できます。このメソッドはブロックを1つ取ります。
以下使用可能なメソッドを一部抜粋。 - assetsは、scaffoldを生成するかどうかを指定します。デフォルトはtrueです。 - force_pluralは、モデル名を複数形にするかどうかを指定します。デフォルトはfalseです。 - helperはヘルパーを生成するかどうかを指定します。デフォルトはtrueです。 - javascriptsは、生成時にJavaScriptファイルへのフックをオンにするかどうかを指定します。この設定はscaffoldジェネレータの実行中に使用されます。デフォルトはtrueです。 - test_frameworkは、使用するテストフレームワークを指定します。デフォルトはfalseであり、この場合はTest::Unitが使用されます。 - template_engineはビューのテンプレートエンジン(ERBやHamlなど)を指定します。デフォルトは:ERBです。
今回の場合、helperとjavascriptsそしてtest系のファイルを生成したくないので 次のコードを書き込む。
config/application.rb
class Application < Rails::Application --<ここから書き込み>-- config.generators do |g| g.helper false g.test_framework false g.javascripts false end
その後再度rails gのコマンドを実行する。
すると不要なファイルを生成せずに済む。