何时使用 Helpers 而不是 Partials

Posted

技术标签:

【中文标题】何时使用 Helpers 而不是 Partials【英文标题】:When to use Helpers instead of Partials 【发布时间】:2010-09-28 19:07:28 【问题描述】:

在 Rails 应用程序中,您会在什么情况下使用 partial 以及何时使用 helper?我发现两者非常相似,因为它们代表标记片段。

这方面有约定吗?使用它们的“rails 方式”是什么?

谢谢!

【问题讨论】:

【参考方案1】:

我想我的经验法则是使用 helper 来构建单个显示“单元”——比如包含链接的 span——并使用 partial 来构建一个更复杂的显示单元,该单元由多个一个显示“单元”——例如网格或菜单。

【讨论】:

【参考方案2】:

partial 是一个视图片段,一个视图片段,在多个地方都有用,并且被拉出以去除重复。然而,底线是视图 - 独立或部分 - 用于展示。

如您所知,控制器用于处理逻辑。但是,在呈现视图时不可避免地需要一些逻辑处理。因此,例如,如果您有一些仅供管理员使用的演示文稿,您可能会将该逻辑提取到帮助程序并保持视图“纯”和仅演示文稿。 Helpers 将不可避免地包含演示代码 - html 标签等 - 但这是它们使用的副产品,而不是它们的主要功能。

您还可以将两者结合起来 - 一个用于管理演示,另一个用于用户演示,以及一个具有逻辑的助手,以确定在特定情况下呈现哪个。

只要我的 $.02 美元。

【讨论】:

但 rails 仅使用帮助器进行演示(如复选框和文本字段)【参考方案3】:

其他答案代表了关于使用助手与部分的概念共识。请考虑以下内容以供进一步阅读:

Basecamp 开发人员提出了在帮助程序中最小化 HTML 的案例 http://37signals.com/svn/posts/1108-what-belongs-in-a-helper-method

Viget 开发人员对每个基准进行了基准测试,发现辅助函数比局部函数更快 http://www.viget.com/extend/helpers-vs-partials-a-performance-question/

【讨论】:

生产中的性能相似:bindle.me/blog/index.php/26/…【参考方案4】:

当代码很可能在其他项目中再次使用时,我使用帮助程序,并为特定于项目的代码使用部分代码。

【讨论】:

【参考方案5】:

我使用部分作为子模板(即,带有大量标记的东西,它会一次又一次地使用,比如博客文章简介),以及帮助处理显示更多逻辑的东西(一个只有管理员可见的 div,例如实例)。

【讨论】:

【参考方案6】:

Partials 是视图的一部分,它可以包含一堆 HTML 代码和 ruby​​ 代码。 您也可以在渲染方法中使用控制器中的部分。

如果是帮助程序,您可以使用短 html 代码的方法。您可以在视图文件中使用一些与计算相关的方法。

【讨论】:

以上是关于何时使用 Helpers 而不是 Partials的主要内容,如果未能解决你的问题,请参考以下文章

Jbuilder Partials 合并而不是 Nest

Embedded JS Partials - 确定用户是不是登录

如何使用 elasticsearch.helpers.streaming_bulk

为啥使用片段,以及何时使用片段而不是活动?

何时使用 TestFixtureSetUp 属性而不是默认构造函数?

何时使用 ADOX 而不是 ADCX?