2

ユーザー名、投稿、その他の有益な情報源の両方を表示することにしたインデックスページがあります。Deviseはユーザーの作成とログインセッションの管理を担当するため、複数のコントローラーが必要であることを認識しています。

PostsController、DashboardController、およびRandomController。計画では、ページのさまざまな部分、さまざまなサイズ、さまざまな場所にレンダリングするようにします。

Post.find(:all => :order => "created_at DESC")PostsControllerを使用しているとしましょう。それをページのどこかにレンダリングしたいと思います。所属する投稿のすぐ下にユーザー名を表示したいのですが、ページのランダムな場所にニュースを投稿する「ランダム」コントローラーアクションをレンダリングしたいと思います。

要約:

PostsControllerはインデックスページの一部を見つけてレンダリングし、DeviseControllersはそれに対応するユーザー名をレンダリングし、RandomControllerはニュースやペ​​ージの中央にあるものからランダムなものをレンダリングします。それらすべての中で、これはすべてDashBoardと呼ばれる別のコントローラーで発生しています。したがって、これらすべてのコントローラーアクションは、独自のDashBoardコントローラーインデックスビューでレンダリングされることになっています。

これを達成するためのヒント、または良いアイデア。部分レンダリングについては知っていますが、それを実現する方法がわかりません。

4

1 に答える 1

1

Dashboard#indexによってレンダリングされたビューについて話しているようです。したがって、必要なのは、ページ上のすべての情報をインデックスアクションの下のインスタンス変数として定義することだけです。

おそらく、不足している情報は、コントローラーが任意のモデル(およびActiveRecord :: Baseから継承しない他のクラス)からのデータを自由に使用できることです。

たとえば、Dashboard#indexでは、次のことができます。

@posts = Post.order("created_at DESC").all

これは、ダッシュボードモデルとは異なるモデルを参照しています(モデルが存在することを前提としています)。

于 2013-01-25T21:59:00.440 に答える