我有一个收藏模型。我成功创建了一个_collection.html.erb
,我在应用程序布局中使用<%= render @collections%>
调用。
我的问题是,在我的所有控制器方法中,我必须添加@collections = Collection.all
我发现它非常非常难看,它会让我的收藏范围变得很难改变,而且我确信我错过了一些更好的东西。
有没有办法让模型数据生成部分布局,而AAAALLLLLL控制器中没有相同的代码?
答案 0 :(得分:5)
请注意,您的控制器都是从ApplicationController
继承的。使用它对您有利。添加before_filter
到ApplicationController
加载您的馆藏。
答案 1 :(得分:1)
@cam是对的。任何rails项目都有一个ApplicationController。你的控制器都以MyController&lt; ApplicationController,对吗?如果是这样,这意味着您可以在ApplicationController中创建一个before_filter,它将由所有控制器继承。为此:
/app/controllers/application_controller.rb
before_filter :load_collection
def load_collection
@collections = Collection.all
end
从现在开始,您可以使用所有控制器中的@collections(只要它们从ApplicationController继承)