3

私が作成しているアプリは、多くのアプリと同様に、90% が通常の CRUD で、10% が "ジュース" であり、厄介なビジネス ロジックと、より多くの柔軟性とカスタマイズが必要です。

この 90% に関しては、できるだけ DRY の原則に固執しようとしていました。コントローラーが機能している限り、resource_controller が実際に機能することがわかり、その領域のすべてのコントローラーを削除して、それらを汎用コントローラーに置き換えることができました。

今、私はビューで同じことを得る方法を知りたいです。このアプリには、全体的な application.html.erb レイアウトがあり、すべての CRUD ビューに共通の別のレイアウト レイヤーと、最後に「コア」部分が必要です。

  • index.html.erb では、指定したフィールドとラベルを使用して単純なテーブルを生成する必要があります。

  • 新規および編集用、ラベルとフィールドを示す一般的なフォームの編集 (必要に応じてカスタム フィールドを提供する可能性あり)。

  • show が必要かどうかはわかりませんが、必要な場合は new と edit と同じです。

それを行うのに役立つプラグインとツール (または記事や一般的なポインター) は何ですか?

ありがとう、フェリペ。

4

3 に答える 3

1

script/generate scaffold test name:string description:text valid:boolean生成するビューを実行して確認できます(script/destroy scaffold testファイルを削除するために実行します)。これにより、4つのデフォルトのRailsビューを作成するための標準的な方法を理解できます。

また、「Railsを使用したアジャイルWeb開発」および「TheRailsWay」の関連する章を読むことをお勧めします。

クリーンアップする必要のある既存のビューがある場合、Railscastsのこのエピソードは素晴らしいです:ビューのクリーンアップ

デイリー

于 2009-01-25T04:51:25.847 に答える
1

コントローラーを DRY して、ビューを DRY したい場合、1 つのアプローチは、render :action => *actionname*変更される可能性のある UI コンテンツをインスタンス変数に保存することです (ビューで使用できるようにするため)。editnewlistまたはshowの同じビュー。たとえば、Fooに関連するものを編集している場合、タイトルは と読むEditing <%= @type %>必要があり、フォーム ヘルパーもそうする必要があります。Fooはbarに変更できます。したがって、異なるエンティティ (またはコントローラ) に対して同じビューを再利用しています。とは異なりredirect_torender :actionビューをレンダリングするだけで、レンダリングしようとしているアクションのコントローラー アクションを呼び出しません。

確かなことは、何かを DRY アップしたい場合は、標準化するか、規則に従う必要があるということです。たとえば、この場合はビューの構造です。

于 2009-01-26T09:52:26.370 に答える
1

あなたの要件に非常に近い新しい宝石が出ているようです:

http://github.com/codez/dry_crud

共通のスーパークラス (CrudController) に基づいて、さまざまなモデル コントローラーの CRUD 機能を継承し、そこで特別なものを適応させることができます。これは、おそらくすでに行ったことです。

dry_crud の新しい点は、ビューとパーシャルも継承可能であることです。CRUD アクションごとに共通の基本テンプレートを定義し、いくつかのパーシャルに分割することもできます。提供されたヘルパーのおかげで、現在のモデルの列定義を調べることで、フォームとテーブルを一般的に定義できます。特定のモデルのビューでは、カスタマイズが必要なパーシャルまたはビューのみを適応させることができます。

上記のサイトにあるドキュメントを参照して、DRY を維持してください。

于 2010-06-12T15:03:40.447 に答える