私は Rails 初心者なので、現在のプロジェクトは奇妙な状態になっています。
最初に生成したものの 1 つは、「ムービー」モデルでした。その後、より詳細な定義を開始し、いくつかのメソッドなどを追加しました。
rails generate scaffold
ルーティング、ビュー、コントローラーなどのものを接続するために、これを生成する必要があったことに今気づきました。
スキャフォールディングを生成しようとしましたが、同じ名前の移行ファイルがすでに存在するというエラーが発生しました。
今、「ムービー」の足場を作成するための最良の方法は何ですか? (Rails 3 を使用)
ベストアンサー1
TL;DR :rails g scaffold_controller <name>
すでにモデルがある場合でも、rails generate
オプションを使用して必要なコントローラーと移行ファイルを生成できます。 を実行すると、rails generate -h
使用可能なすべてのオプションが表示されます。
Rails:
controller
generator
helper
integration_test
mailer
migration
model
observer
performance_test
plugin
resource
scaffold
scaffold_controller
session_migration
stylesheets
モデルのコントローラー スキャフォールドを生成する場合は、 を参照してくださいscaffold_controller
。わかりやすくするために、その説明を次に示します。
スキャフォールディングされたコントローラとそのビューをスタブ化します。CamelCase または under_scored のモデル名とビューのリストを引数として渡します。コントローラ名は、モデル名の複数形として取得されます。
モジュール内にコントローラーを作成するには、モデル名を「parent_module/controller_name」のようなパスとして指定します。
これにより、app/controllers にコントローラー クラスが生成され、ヘルパー、テンプレート エンジン、テスト フレームワーク ジェネレーターが呼び出されます。
リソースを作成するには、ジェネレータを使用しますresource
。また、移行を作成する場合もジェネレータを使用できます(この狂気のすべてにはパターンがあります)。これらは、リソースを構築するために不足しているファイルを作成するオプションを提供します。または、存在するファイルをスキップするオプションを指定migration
して実行することもできます:)rails generate scaffold
--skip
ジェネレーター内のオプションをじっくりと見てみることをお勧めします。本などではあまり詳しく説明されていないように思いますが、非常に便利です。