Rails: モデルがすでに存在する場合に `rails generate scaffold` を実行するにはどうすればいいですか? 質問する

Rails: モデルがすでに存在する場合に `rails generate scaffold` を実行するにはどうすればいいですか? 質問する

私は 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

ジェネレーター内のオプションをじっくりと見てみることをお勧めします。本などではあまり詳しく説明されていないように思いますが、非常に便利です。

おすすめ記事