コントローラ(最小コードのみ)とモデルを含むプロジェクトを取得しましたが、ビューがありません。スキャフォールドまたは別のツールのみを使用してビューを生成する方法はありますか?
6 に答える
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
これは、scaffoldジェネレーターが内部で呼び出すものです。
rails g erb:scaffold User
erb
は使用するテンプレートエンジンなので、を使用することもできますhaml:scaffold
。
スキャフォールディングで使用するフィールドを明示的に指定する必要があります。railsは、作成されたモデルからフィールドを自動的に推測しません。例えば:
rails g erb:scaffold User firstname lastname reputation
rails g --help
スキップ、強制上書き、ドライランなどのオプション、またはgenerate scaffold --help
スキャフォールディングの生成に固有の情報については、を参照してください。
「別のツール」...
「」ができるのはどうscript/generate view_for model_name
ですか?:)
そのための宝石があります-ViewMapper。Ruby onRails2および3バージョンがあります。
私はあなたの同じ問題に遭遇します。やったよ。詳細は以下のとおりです
。-まず、views/your_modelフォルダーの名前をviews/your_model_bakに変更します。後で失敗した場合に元に戻すには
-次に、コマンドを実行します
rails g scaffold YourModel [field[:type][:index]] --skip
- --skipオプションを忘れないでください。既存のファイル(この場合はコントローラーとモデル、およびその他のいくつかのファイル)は作成されません。
- リスト[field[:type] [:index]]が最新であることを確認してください
--最後に、your_modelコントローラーで許可を更新する必要があります。
それがあなたを助けることができることを願っています。
Rspecを使用していて、spec / viewsのビューごとにテストファイルを生成したくない--no-test-framework
場合は、「」を追加することをお勧めします。
コントローラとモデルがすでに作成された後にビューを生成するには、コマンドラインを使用できます。新しいビューを作成するフォルダーに切り替えます。例えば:
$ cd name_app/app/views/controller_name
$ touch name_file
1つのディレクトリに戻るには、次を使用します。
$ cd ..