0

我正在使用 forem 并尝试呈现所有类别的列表(由一个控制器提供)并且应该显示在论坛的每个页面上。问题是,我试图将 @categories 从 CategoriesController 拉到将在整个站点的不同页面上的侧边栏。

4

2 回答 2

1

“做错了”

所有类别的列表应该来自 Categories 模型或帮助代码,而不是控制器。控制器用于处理传入的 HTTP 请求,不应与其他控制器交互。

您应该将侧边栏放在应用程序布局中,然后@categoriesbefore_filter应用程序控制器中定义。

于 2013-06-10T19:29:48.340 回答
1

这是使用“Presenters”的完美案例。

我同意@Narfanator;您应该从类别模型而不是控制器中提取类别。但是,我不喜欢在应用程序控制器中使用 before_filter,除非您想在站点的所有页面上显示类别。

看看这篇文章http://www.derekhammer.com/2012/11/06/a-pattern-for-rails-presenters。如果您喜欢通过视频学习,请查看http://railscasts.com/episodes/287-presenters-from-scratch?view=comments。该视频为您提供了使用演示者的完整示例。这将极大地清理您的代码并简化您的生活。

于 2013-06-10T19:37:05.850 回答