46

コントローラ(最小コードのみ)とモデルを含むプロジェクトを取得しましたが、ビューがありません。スキャフォールドまたは別のツールのみを使用してビューを生成する方法はありますか?

4

6 に答える 6

84
rails g scaffold User --migration=false --skip

--skipすでに存在するファイルをスキップする手段。(反対は--forceです。)

ヘルパーが必要ない場合は、--helpers=false

Userビューを削除した後の出力例:

      invoke  active_record
   identical    app/models/user.rb
      invoke    test_unit
   identical      test/unit/user_test.rb
        skip      test/fixtures/users.yml
       route  resources :users
      invoke  scaffold_controller
   identical    app/controllers/users_controller.rb
      invoke    erb
       exist      app/views/users
      create      app/views/users/index.html.erb
      create      app/views/users/edit.html.erb
      create      app/views/users/show.html.erb
      create      app/views/users/new.html.erb
      create      app/views/users/_form.html.erb
      invoke    test_unit
   identical      test/functional/users_controller_test.rb
      invoke    helper
   identical      app/helpers/users_helper.rb
      invoke      test_unit
   identical        test/unit/helpers/users_helper_test.rb
      invoke  assets
      invoke    coffee
   identical      app/assets/javascripts/users.js.coffee
      invoke    scss
   identical      app/assets/stylesheets/users.css.scss
      invoke  scss
   identical    app/assets/stylesheets/scaffolds.css.scss
于 2011-11-13T21:32:56.933 に答える
27

これは、scaffoldジェネレーターが内部で呼び出すものです。

rails g erb:scaffold User

erbは使用するテンプレートエンジンなので、を使用することもできますhaml:scaffold

スキャフォールディングで使用するフィールドを明示的に指定する必要があります。railsは、作成されたモデルからフィールドを自動的に推測しません。例えば:

rails g erb:scaffold User firstname lastname reputation

rails g --helpスキップ、強制上書き、ドライランなどのオプション、またはgenerate scaffold --helpスキャフォールディングの生成に固有の情報については、を参照してください。

于 2015-10-06T00:03:24.803 に答える
2

「別のツール」...

「」ができるのはどうscript/generate view_for model_nameですか?:)

そのための宝石があります-ViewMapper。Ruby onRails2および3バージョンがあります。

于 2011-11-13T21:38:40.370 に答える
2

私はあなたの同じ問題に遭遇します。やったよ。詳細は以下のとおりです
。-まず、views/your_modelフォルダーの名前をviews/your_model_bakに変更します。後で失敗した場合に元に戻すには
-次に、コマンドを実行します

rails g scaffold YourModel [field[:type][:index]] --skip
  • --skipオプションを忘れないでください。既存のファイル(この場合はコントローラーとモデル、およびその他のいくつかのファイル)は作成されません。
  • リスト[field[:type] [:index]]が最新であることを確認してください

--最後に、your_modelコントローラーで許可を更新する必要があります。

それがあなたを助けることができることを願っています。

于 2015-05-24T04:06:36.783 に答える
1

Rspecを使用していて、spec / viewsのビューごとにテストファイルを生成したくない--no-test-framework場合は、「」を追加することをお勧めします。

于 2013-05-28T16:51:18.673 に答える
-2

コントローラとモデルがすでに作成された後にビューを生成するには、コマンドラインを使用できます。新しいビューを作成するフォルダーに切り替えます。例えば:

$ cd name_app/app/views/controller_name
$ touch name_file

1つのディレクトリに戻るには、次を使用します。

$ cd ..
于 2015-08-07T17:59:16.400 に答える