0

我正在寻找从一个模型中获取集合以显示在所有页面上。

应用程序.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 回答