0

1 つのモデルからコレクションを取得して、すべてのページに表示しようとしています。

Application.html.erb

 <ul>
    <% @category.each do |c| %>
   <li><%= c.name %></li></ul>
        <% end %>
        </ul>

コントローラ

 @categories = Category.all

すべてのコントローラーにコピーして貼り付けることなく、アプリケーションコントローラーにどのように適合させるのですか?

4

2 に答える 2

5

ApplicationController.rb作成しbefore_filter、特定のメソッドを呼び出すように定義します。

例えば:

class ApplicationController < ActionController::Base
  before_filter :load_categories

  protected
  def load_categories
    @categories = Category.all
  end
end

@categoriesこれで、すべてのビューからにアクセスできるはずです。

あなたの見解では:

<ul>
  <% @categories.each do |c| %>
  <li><%= c.name %></li></ul>
  <% end %>
</ul>

お役に立てば幸いです。

于 2012-06-13T02:22:39.733 に答える
1

使うだけ

<ul>
<% Category.all.each do |c| %>
 <li><%= c.name %></li></ul>
<% end %>
 </ul>

コントローラーにインスタンス変数を設定する必要はありません。

于 2012-06-13T02:22:07.587 に答える