Rails content_for和Widgets(从视图调用控制器功能)

时间:2018-07-11 17:20:52

标签: ruby-on-rails model-view-controller widget helpers

Rails中是否有任何标准方法(即,我知道它不是核心的广为接受的gem),该方法允许以类似于普通MVC视图的方式将一个定义的小部件(如Blogroll)包含在视图中?我特别希望它

  1. 仅当该小部件被调用以在视图中呈现时,才执行填充该小部件的代码。因此,没有content_for和before过滤器。
  2. 将窗口小部件的渲染分为控制器部分(在DB中查询博客卷中的项目)和视图(渲染博客列表)。
  3. 允许小部件控制器访问在控制器中设置的信息(甚至实例变量),例如,小部件可以查看帖子的标题以确定相关链接。因此,没有子请求或其他任何内容。

这应该不难做到,而且似乎有如此明显的需求,但我一直看到各种各样的技巧可以通过助手来解决这种不足。是否有一些相对标准的宝石可以做到这一点?如果不是,为什么不呢?无论从技术上还是从MVC角度来看,与将所有这些逻辑放入助手或复制有关在视图和控制器过滤器中显示的内容有关的信息相比,确保地狱似乎可以促进更多的代码重用性和可读性。

每个BlahController(包括应用程序)都有一个BlahWidgetController,甚至提供了一种诱人的机制来允许覆盖和继承。

0 个答案:

没有答案