0

最近、モデル/コントローラー/ビューの 2 つをスキャフォールディングしました。それらを xxx と yyy と呼びましょう。今、コントローラーファイルの下を見て、まったく何も見えません! しかし、それはまだ機能していました。調査の結果、それが原因であることがわかりました

inherited_resources ジェム

したがって、コントローラーは現在このように見えます

class xxx < InheritedResources::Base
end

だから私が変われば

InheritedResources::Base to ApplicationController 

私は他のコントローラーを持っているように、通常のコントローラーのように動作しますか? ドキュメントを調べてみたところ、質問のためにここに紹介されました。

これら 2 つの scaffold の通常のコントローラー/モデルを取得する最良の方法は何ですか?

お時間をいただきありがとうございます。

4

2 に答える 2

5

加えてconfig/application.rb

#use rails scaffolding generator
config.app_generators.scaffold_controller = :scaffold_controller
于 2013-11-20T20:01:31.640 に答える
0

を使用するInheritedResourcesと、gem はコントローラー定義を生成するコントローラー ジェネレーターを登録します。使用のポイントはInheritedResources::Base、コントローラーをクリーンアップし、7 つのRESTアクションすべてを共通のクラスに移動することです。拡張する場合、次のメソッドを定義する必要はありませんInheritedResources::Base

index
new
create
edit
update
show
destroy

それらはすべてあなたのために定義されています。先に進んでテストを行い、リソースをスキャフォールディングしてそのインデックス メソッドに移動し、いくつかのレコードを追加して、いろいろ試してみてください...

古い方法に戻り、バンドルされているコントローラー ジェネレーターでコードを生成したい場合はinherited_resources、Gemfile から を削除してbundle install、再び scaffold を生成します。

それが役に立てば幸い (:

PS 使用することにした場合InheritedResources(使用することをお勧めします)、カスタマイズしたいメソッドを上書きできます。docs を見てください。すべてがより明確です。

于 2013-03-13T05:31:07.973 に答える