0

みなさん、こんにちは Rails アプリケーションに REST リソースであるモデル「プロジェクト」があります。

メソッド「ダッシュボード」を持つ非RESTコントローラー「ホーム」もあります。

ダッシュボードにすべてのプロジェクトを表示させたい。つまり、Project で index アクションを呼び出す必要があります。これを行うために私が考えることができる2つの方法があります:

1.

ダッシュボード テンプレートで Project#Index への link_to を作成すると、ダッシュボードと Index の両方が同じレイアウトを共有するため、ユーザーはプロジェクトのリストを表示できます。ただし、これには追加のクリックが必要です。

2.

ダッシュボードの他のすべてのビュー要素はレイアウト ファイルにあるため、ダッシュボード アクションで @projects インスタンスを手動で設定し、インデックス テンプレートをレンダリングできます。

これは、物事へのアプローチ方法が間違っているようにも見えます。

「プロジェクト」と「Cookie」という 2 つのモデルがあり、それらすべてをダッシュ​​ボードに一覧表示したいですか? 可能な限りきちんとした方法で実装するにはどうすればよいですか?

4

2 に答える 2

1
class HomeController < ApplicationController
  def dashboard
    @projects = Project.all
    @cookies = Cookie.all
  end
end

ビュー/ホーム/ダッシュボードで、必要に応じてこれらのコレクションを表します。

views/projects/ ディレクトリにパーシャルがあり、それが現在プロジェクト インデックス アクション内でプロジェクト コレクションをレンダリングするために使用されている場合、次のようなものを呼び出してダッシュボードでそのビューを使用できます。

<%= render partial: 'projects/list', locals: { projects: @projects } %>
于 2013-04-07T08:23:47.033 に答える
0

ProjectController のダッシュボード メソッドのように聞こえますが、次のように呼び出す必要があります。

projects = Project.find_all

次に、対応するビューでプロジェクトをレンダリングします。

于 2013-04-07T07:42:43.567 に答える