我尝试在@categories = Category.all
中添加ApplicationController
。
但是,当我点击其中一个观点时,它不起作用 - @categories
似乎不是nil
。
我想在我的_navigation.html.erb
文件夹中的layouts
部分中生成一个菜单。
如果不在我的@categories
中,我在哪里声明要在我的所有观看中使用的部分中使用的Application Controller
实例变量?
感谢。
答案 0 :(得分:2)
如果要在所有视图中使用它,也许你可以定义一个帮助器。
def all_categories
@categories ||= Category.all
end
您可以使用all_categories在所有视图中访问它。
<强>更新强>
如果您希望在控制器中定义all_categories,请使用helper_method
helper_method :all_categories
答案 1 :(得分:1)
在应用程序控制器中使用before_filter,它会在您调用的操作之前执行任何方法
class ApplicationController < ActionController::Base
protect_from_forgery
before_filter :some_action
def some_action
@categories = Category.all
end
end
您应该阅读this