Rails - 在所有页面加载中使@projects可用

The*_*xit 3 ruby-on-rails ruby-on-rails-3

在我的应用程序的每个页面上,我想显示用户的项目...那么我使用哪个控制器来确保项目控制器中的@projects在视图中可用?

谢谢

Pat*_*ann 5

在application_controller中,执行以下操作:

before_filter :load_projects

def load_projects
  @projects = Project.all
end
Run Code Online (Sandbox Code Playgroud)

这将在每个请求上运行load_projects方法并填充@projects变量.

您还可以为之前的过滤器添加条件,如下所示:

before_filter :load_projects, :only => [:index]

def load_projects
  @projects = Project.all
end
Run Code Online (Sandbox Code Playgroud)

了解有关ActionController过滤器的更多信息: