4

ユーザーコントローラーは、複数のユーザーを制御するため、単純な理由でUsersControllerと呼ばれますが、実際には、特定のユーザーに固有のいくつかのパラメーターのみを変更しませんか?

したがって、私にとって最も論理的なことは、Dashboardという名前のコントローラーはDashboardsControllerという名前にする必要があるということです。これは、多数のPCにまたがる複数のダッシュボードを制御し、ページのレンダリング後に特定のフィールドがわずかに変更されるため、そのために名前を付ける必要があるためです。ダッシュボード。同様に、ユーザーの名前はユーザーであり、ユーザーではありません。

それは私を出発点に戻します。何を選択するかをどのように決定しますか。複数形または単数形?ダッシュボードはアプリケーション内の1つの特定のものにすぎませんが、ユーザーは実際には自分自身だけを制御しているわけではありませんが、ユーザー名がページに表示されるときのダッシュボードや、特定のユーザーが好むタグはすべて異なります。

これのベストプラクティスは何でしょうか?

4

3 に答える 3

3

私はダッシュボードにプレゼンターパターンを使用する傾向があります。ダッシュボードはオブジェクトのハイブリッドであり、ショーまたはインデックスページと考えるのは難しいです。関連するオブジェクトのクエリと集計を処理する仮想オブジェクトを作成します。DashboardsControllerを使用することにした場合でも、コントローラーコードは実際にクリーンアップされます。

ただし、ルートのresources.usersに追加することをお勧めします。

collection do 
  get :dashboard
end

次に、UsersControllerの下にアクションダッシュボードを追加します

def dashboard
  @presenter = UserDashboardPresenter.new(user)
end

ビューで@presenterを使用します。

プレゼンターパターンを検索すると、詳細がわかります。キャッシュ、コードの再利用、テスト、パフォーマンスの向上に最適です。

于 2013-01-25T23:42:22.990 に答える
2

railsの規則では、複数形(/ dashboardsなど)を使用してコントローラー名を定義します。これは決まっておらず、ニーズに合わせて変更できますが、ベストプラクティスを尋ねる場合、特に始めたばかりの場合は、レールの規則に従うのが最善の策です。レール付き。それはあなたの人生をはるかに簡単にします。

コントローラーに単一の用語(例:/ dashboard)を本当に使用したい場合は、routes.rbファイルでそれを指定できます(これは、RESTfulルートを使用し、ダッシュボードをリソースとして定義していることを前提としています)

resource :dashboard, :controller => 'dashboard'

また、単数形を使用する場合は、それに応じて、railsがRESTfulルート用に作成するヘルパーメソッドを調整する必要があることに注意してください。

  dashboards_path # will no longer work, you must use
  dashboard_path 
于 2013-01-25T23:41:58.867 に答える
1

コントローラに複数の名前を使用することは、Railsの慣例の1つにすぎません。あなたは大会から逸脱すべきですか?それにこだわる方がいいと思います。

ユーザーについて述べたように、通常、複数形の名前の方が自然に聞こえます。あなたのDashboardsControllerには複数のアクションがあると確信しているので、多元主義の考え方に戻ります。

私のアドバイスは複数形の慣習に固執します。

于 2013-01-25T23:42:07.883 に答える