何时使用Helpers而不是Partials

45
在一个Rails应用程序中,何时应该使用Partial,何时应该使用Helper?我发现两者非常相似,因为它们都代表了标记片段。
在这方面有什么惯例吗?哪一种是“Rails方式”使用它们的方法?
谢谢!
6个回答

31

我想我的一般原则是使用帮助程序来构建一个单独的“显示单元” - 比如包含链接的span - 并使用局部文件来构建由多个“显示单元”组成的更复杂的显示单元 - 比如网格或菜单。


19

Partial指的是视图片段,即在多个地方都有用且可以抽出来以消除重复的视图部分。然而,总体而言,视图 - 独立或局部 - 是用于呈现的。

正如您所知,控制器用于处理逻辑。然而,当呈现视图时,您不可避免地需要一些逻辑处理。因此,例如,如果您有一些仅对管理员可用的演示文稿,则可以将该逻辑提取到帮助程序中,并保持视图“纯粹”和仅用于呈现。帮手必然包含演示代码 - HTML 标签等 - 但这是其使用的副产品,而非主要功能。

您还可以将两者组合在一起 - 一个用于管理员演示,另一个用于用户演示的局部视图,以及一个带有逻辑来确定在特定情况下呈现哪一个。

仅供参考。


3
Rails只是将辅助程序用于展示(例如复选框和文本框)。 - Pablo Fernandez

8

2
生产环境中性能相似:http://bindle.me/blog/index.php/26/helpers-vs-partials-from-a-performance-perspective - user82216

2

当代码可能在其他项目中再次使用时,我会使用helpers,而对于特定于项目的代码,则使用partials。


2

我使用局部模板作为子模板(例如,一些包含大量标记的内容,如博客文章摘要),并使用助手来处理显示更多逻辑性的东西(例如,只对管理员可见的div)。


0

局部视图是视图的一部分,可以包含大量的HTML代码和Ruby代码。您还可以在控制器中使用局部视图的渲染方法。

在帮助程序方面,您可以拥有用于短HTML代码片段的方法。您可以拥有一些与计算相关的方法,这些方法您想在视图文件中使用。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接