有没有办法在rails中使用附带的代码渲染局部视图?
例如:我希望能够创建一个部分视图,该视图将显示我网站上的前5个foobar。这部分需要附带代码从数据库中检索一些foobar,根据算法对它们进行排名,然后输出前5位的视图。
我希望能够将此部分包含在我喜欢的任何页面上,最好只使用
之类的内容<%= render :action => "top_five_foobars" %>
这可行吗?我已经习惯了asp.net mvc,在那里你可以创建一个运行一些代码并返回部分代码的动作,但它似乎在rails中只返回模板......
答案 0 :(得分:5)
如果谷歌让你到这里,你可能正在寻找cells
单元格是Rails的视图组件。他们是迷你控制器 他们自己的MVC堆栈,可以调用逻辑和渲染视图。他们带来 将OOP返回到Rails的视图层,并为其编写可重用的portlet 你的应用程序很有趣。
你需要像购物车这样的东西,几乎就出现了 您应用的每个页面。
你不会使用部分和帮助,是吗?
答案 1 :(得分:2)
它可能不是最干净的方式,但我所做的是我在Application Controller中创建了一个帮助方法来检索前5个foobar。然后我在视图中调用此方法。我还缓存了显示结果的视图部分。