我有一个页面资源的模型和控制器。我需要能够从 Application.html.erb 中访问页面和页面的名称以及 link_to
我尝试渲染导航部分。但是您不能从部分访问控制器。我需要能够呈现一个可以访问@pages 变量的导航栏,这样我就可以遍历它们。
最好的方法是什么?
我有一个页面资源的模型和控制器。我需要能够从 Application.html.erb 中访问页面和页面的名称以及 link_to
我尝试渲染导航部分。但是您不能从部分访问控制器。我需要能够呈现一个可以访问@pages 变量的导航栏,这样我就可以遍历它们。
最好的方法是什么?
在您的 ApplicationController 内部,app/controllers/application_controller.rb
class ApplicationController < ActionController::Base
protect_from_forgery
before_filter :get_pages
protected
def get_pages
@pages ||= Page.all
end
end
这样您就可以@pages
在任何视图中使用实例变量。
通过||=
操作符使用 memoization,您只需在第一次需要时分配变量,因此无需担心每次都调用该方法。