私はRailsが初めてなので、現在のプロジェクトは奇妙な状態にあります。
私が最初に作成したものの1つは "Movie"モデルです。それから私はそれをより詳細に定義し始め、いくつかのメソッドを追加するなど.
ルーティング、ビュー、コントローラなどをつなぐためにRails generate scaffold
を使って生成したほうがいいと気付きました。
足場を生成しようとしましたが、同じ名前の移行ファイルが既に存在するというエラーが表示されました。
私の「映画」のための足場を今作成するための私にとって最良の方法は何ですか? (Rails 3を使用)
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
を参照してください。わかりやすくするために、その説明を次に示します。
足場のコントローラとそのビューをスタブアウトします。モデル名(CamelCasedまたはunder_scored)とビューのリストを引数として渡します。コントローラ名は、モデル名の複数形のバージョンとして取得されます。
モジュール内にコントローラを作成するには、モデル名を 'parent_module/controller_name'のようなパスとして指定します。
これはapp/controllersにコントローラークラスを生成し、ヘルパー、テンプレートエンジン、そしてテストフレームワークジェネレータを呼び出します。
リソースを作成するにはresource
ジェネレータを使用し、移行を作成するにはmigration
ジェネレータを表示することもできます(この狂気のすべてに対するパターンがあります)。これらは、不足しているファイルを作成してリソースを構築するためのオプションを提供します。あるいは、Rails generate scaffold
オプションを指定して--skip
を実行し、存在するファイルをすべてスキップすることもできます。
私は発電機の中の選択を見るのにしばらく時間を費やすことを勧めます。それらは私が本などで非常によく文書化されているとは思わないものですが、彼らは非常に便利です。
Lee Jarvis
による素晴らしい答え、これは単なるコマンドです。すでにUserという既存のモデルがあります。
Rails g scaffold_controller User
既存のデータベースを使ってRailsアプリを起動している人のために、scaffoldスクリプトを生成するためのschema_to_scaffold
というクールなgemがあります。それは出力します:
Rails g scaffold users fname:string lname:string bdate:date email:string encrypted_password:string
あなたのschema.rb
から私達のあなたの名前が変更されたschema.rb.
チェックしてください
このコマンドはうまくいくはずです。
$ Rails g scaffold movie --skip
scaffold_controller
を利用してモデルのattributes
を渡すことを忘れないでください、そうでなければ足場は属性なしで生成されます。
Rails g scaffold_controller User name email
# or
Rails g scaffold_controller User name:string email:string
このコマンドは以下のファイルを生成します。
create app/controllers/users_controller.rb
invoke haml
create app/views/users
create app/views/users/index.html.haml
create app/views/users/edit.html.haml
create app/views/users/show.html.haml
create app/views/users/new.html.haml
create app/views/users/_form.html.haml
invoke test_unit
create test/controllers/users_controller_test.rb
invoke helper
create app/helpers/users_helper.rb
invoke test_unit
invoke jbuilder
create app/views/users/index.json.jbuilder
create app/views/users/show.json.jbuilder
Rails 5では、まだ実行できます
$Rails generate scaffold movie --skip
足りない足場ファイルをすべて作成する
Rails generate scaffold_controller Movie
コントローラとビューのみを作成します。
より良い説明のためにチェックしてください Rails scaffold