我希望从一个模型中获取集合以显示在所有页面上。
Application.html.erb
<ul>
<% @category.each do |c| %>
<li><%= c.name %></li></ul>
<% end %>
</ul>
控制器
@categories = Category.all
我如何在应用程序控制器中使用它而不必复制并粘贴所有控制器?
答案 0 :(得分: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>
希望它对你有所帮助。
答案 1 :(得分:1)
只需使用
<ul>
<% Category.all.each do |c| %>
<li><%= c.name %></li></ul>
<% end %>
</ul>
您不必在控制器中设置实例变量。