何时使用 Helpers 而不是 Partials

发布于 2024-07-10 04:26:21 字数 116 浏览 6 评论 0原文

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

对此有约定吗? 这是使用它们的“导轨方式”?

谢谢!

In a rails application, in which situation would you use a partial and when would you use a helper? I find both very similar, since they represent markup fragments.

Is there a convention around this? which is the 'rails way' of using them?

Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

请别遗忘我 2024-07-17 04:26:21

我想我的经验法则是使用一个助手来构建单个显示“单元” - 就像包含链接的跨度 - 并使用部分来构建由多个“单元”组成的更复杂的显示单元“显示——就像网格或菜单。

I guess my rule of thumb is to use a helper to build a single "unit" of display -- like a span containing a link -- and to use a partial to build a more complex unit of display composed of more than one "unit" of display -- like a grid or a menu.

时光倒影 2024-07-17 04:26:21

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

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

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

只是我的 0.02 美元。

A partial is a view fragment, a piece of a view that is useful in multiple places and is pulled out so as to remove duplication. Bottom line, however, is that views - standalone or partial - are for presentation.

As you know, controllers are for processing logic. It is inevitable, however, that you will need some logic processing when presenting a view. So, for instance, if you have some presentation piece that is only available to admins, you might extract that logic to a helper and keep the view "pure" and presentation-only. Helpers will inevitably contain presentation code - html tags and such - but that is a by-product of their use, not their primary function.

You can also combine the two - a partial for the admin presentation and another for the user presentation, and a helper with the logic to determine which one is rendered in a particular situation.

Just my $.02.

糖果控 2024-07-17 04:26:21

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

Basecamp dev Making the case for Minimize HTML in helpers
http://37signals.com/svn/posts/1108-what-belongs- in-a-helper-method

Viget 开发人员对每个方法进行了基准测试,发现助手比部分更快
http://www.viget.com/extend/helpers-vs-partials-a -性能问题/

The other answers represent the conceptual consensus regarding the use of helpers vs. partials. Consider the following for further reading:

Basecamp dev making the case for minimizing HTML in helpers
http://37signals.com/svn/posts/1108-what-belongs-in-a-helper-method

Viget dev benchmarked each and found that helpers are faster than partials
http://www.viget.com/extend/helpers-vs-partials-a-performance-question/

不甘平庸 2024-07-17 04:26:21

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

I use helpers when the code is likely to be used again in other projects, and partials for code specific to the project.

抽个烟儿 2024-07-17 04:26:21

我使用部分作为子模板(即,具有大量标记的东西,可以一次又一次地使用,例如博客文章简介),并使用帮助程序来处理显示更多逻辑内容(例如,仅对管理员可见的 div)。

I use partials as subtemplates (i.e., something with lots of markup that gets used again and again, like a blog post blurb), and helpers to handle display more logic-y things (a div that's only visible to admins, for instance).

那一片橙海, 2024-07-17 04:26:21

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

对于帮助程序,您可以使用简短的 html 代码片段的方法。 您可以在视图文件中使用一些与计算相关的方法。

Partials are the part of view which can have bunch of HTML code along with ruby code.
You can also use the partials in controller in render method.

In case of helpers, you can have methods for short html piece of code. You can have some calculations related methods which you want to use in your view file.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文