2010-12-02 10 views
291

私は現在のプロジェクトが奇妙な状態になっているので、私はRailsを使い慣れていません。モデルが既に存在する場合、 `rails generate scaffold`を実行するには?

私が生成した最初のものの1つは「映画」モデルでした。私はその後、より詳細にそれを定義始めたいくつかのメソッドなどを追加

私は今、私が試した

などのルーティング、ビュー、コントローラ、のようなものをフックするrails generate scaffoldでそれを生成している必要があります実現スキャフォールディングを生成するのに、同じ名前のマイグレーションファイルが既に存在するというエラーが表示されます。

「映画」の足場を今作成するにはどうすればよいですか? (レール3を使用して)

+1

チェックしてください。 –

+1

@ penne12と同意するという概念の詳細を学びます。少なくとも最初は、コンセプトに慣れるまで、すべてのコードが何をしているのかを知るまで、あなたのために生成されます。 – mydoghasworms

+0

直接関係はありませんが、もしあなたが混乱した場合は、レールを使用してください。。私はこれが本当に便利だったことを思い出しました。 – Helsing

答えて

534

TL; DRrails 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でコントローラクラスを生成し、helper、 テンプレートエンジンとテストフレームワークジェネレータを呼び出します。

あなたのリソースを作成するには、あなたがresource発電機を使用したい、との移行を作成するために、あなたもmigration発電機を見ることができます(参照、この狂気の全てのパターンがあります)。これらは、欠落したファイルを作成してリソースを構築するためのオプションを提供します。あるいは、を--skipオプションで実行して、存在するファイルをスキップすることもできます。

ジェネレータのオプションを調べるのにしばらく時間をかけてください。彼らは私が書籍などで非常にうまく文書化されているとは思わないが、とても便利です。

+10

うわー、私は今までプログラミングの質問に得た最高の答えの一つです。ありがとう! – Lan

+0

優秀、injekt !!!あなたが答えた方法を愛しました。 – Pravin

+0

ありがとうございました!私に多くの仕事を保存しました! :) – Automatico

27

既存のデータベースを持つレールアプリを起動する人には、scaffoldスクリプトを生成するためのschema_to_scaffoldというクールな宝石があります。 それは出力:Lee Jarvisによってあなたのschema.rb私たちの名前を変更しschema.rb.Check it

+2

これは素晴らしいlitleの宝石です、それは私を助けてくれるでしょう! Railsに組み込まなければならない! –

60

グレート答えから

rails g scaffold users fname:string lname:string bdate:date email:string encrypted_password:string

、これは単なるコマンド例えばです。我々はすでに、ユーザーと呼ばれる既存のモデルを持っている:

rails g scaffold_controller User 
+4

テキストの段落を読むのが面倒すぎる、ありがとうございました! –

+0

ありがとう、私はこれが質問にはるかに直接的に答えると思います。 –

12

このコマンドは、トリックを行う必要があります。

$ rails g scaffold movie --skip 
+1

まさに私が必要なもの!ありがとう! –

5

あなたはscaffold_controllerを利用し、モデルのattributesを渡すために覚えている、または足場がなることができます属性なしで生成されます。それでも

$rails generate scaffold movie --skip 

が不足しているすべての足場のファイルを作成するために実行することができ、

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 
0

でRailsの5のか

rails generate scaffold_controller Movie 

rails g scaffold_controller User name email 
# or 
rails g scaffold_controller User name:string email:string 

このコマンドは、以下のファイルが生成されます。 コントローラとビューのみを作成するには、

を入力します。

より良い説明のためそれはあなた自身のコントローラとビューとルートを書くために、おそらく最善ですrails scaffold

関連する問題