如何从application.html.erb中访问模型和控制器属性?

时间:2013-01-26 21:18:05

标签: ruby ruby-on-rails-3.2 scope

我有一个模型和一个页面资源的控制器。 我需要能够访问页面的名称 以及来自内部的页面和link_to Application.html.erb

我尝试过渲染部分导航。 但是您无法从部分访问控制器。 我需要能够渲染具有访问权限的导航栏 @pages变量,所以我可以遍历它们。

最好的方法是什么?

1 个答案:

答案 0 :(得分:2)

在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,您只需在第一次需要时分配变量,因此无需担心每次都调用该方法。