我正在寻找从一个模型中获取集合以显示在所有页面上。
应用程序.html.erb
<ul>
<% @category.each do |c| %>
<li><%= c.name %></li></ul>
<% end %>
</ul>
控制器
@categories = Category.all
我如何将它安装在应用程序控制器中而无需在所有控制器上复制和粘贴?
我正在寻找从一个模型中获取集合以显示在所有页面上。
应用程序.html.erb
<ul>
<% @category.each do |c| %>
<li><%= c.name %></li></ul>
<% end %>
</ul>
控制器
@categories = Category.all
我如何将它安装在应用程序控制器中而无需在所有控制器上复制和粘贴?
在您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>
希望它可以帮助你。
只需使用
<ul>
<% Category.all.each do |c| %>
<li><%= c.name %></li></ul>
<% end %>
</ul>
您不必在控制器中设置实例变量。