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