31

Rails 3 の scaffold ジェネレーターは、モデル クラスを名前空間内に配置します。例:

rails generate scaffold admin/portfolio

ただし、コントローラーとビューのみを管理名前空間内に配置したいと考えています。

どうすればそれを回避できますか?

4

8 に答える 8

23

rails generate model Portfolio

rails generate controller Admin::Portfolios

于 2010-09-24T14:35:39.733 に答える
7

@RubyDev が Ryan Bate のNifty Generatorsを提案したのは正しかったのですが、彼が --skip-model オプションを使用するように言った理由はわかりません。

気の利いたジェネレーターは、実際にあなたが求めていることを正確に実行します。Gemfile に追加するだけです。

gem "nifty-generators"

そして実行します:

rails g nifty:scaffold Admin::Portfolio name:string

これにより、通常のスキャフォールドでコントローラーとビューが「admin」名前空間に作成されますが、モデルは名前空間に作成されません

于 2012-07-11T23:58:50.167 に答える
5

@ tybro0103 に従って更新

nifty:generators を使用する: https://github.com/ryanb/nifty-generators

rails generate nifty:scaffold Admin::Portfolio

名前空間を使用せずにモデルまたはスキャフォールドを既に生成しており、admin 名前空間に対して再度実行したい場合は、モデルをスキップできます。

rails generate nifty:scaffold Admin::Portfolio --skip-model

scaffold にすべてのフィールドを含むビューを生成させたい場合は、フィールド名をもう一度入力してください。

rails generate nifty:scaffold portfolio name:string
rails generate nifty:scaffold Admin::portfolio  name:string --skip-model

私は通常、2 つを一緒に行うので、前のコマンドに移動して編集し、Admin:: と --skip-model を追加するだけで簡単に実行できます。

于 2011-09-18T18:57:55.263 に答える
1

少し前までは気の利いたジェネレーターが正しかったのですが、Rails 4 がリリースされた今では時代遅れになっています。名前空間のないモデルで管理スキャフォールディングを生成したい場合は、rails-admin-scaffold gem を使用できます。

于 2013-08-24T21:07:42.707 に答える
0

最善の解決策

rails generate scaffold admin/theme name:string active:integer position:integer --migration=false

rails generate migration CreateTheme name:string active:integer position:integer
# add t.timestamps in migration

したがって、テーブルにプレフィックスは生成されません

于 2017-04-26T02:25:45.987 に答える