何时使用Helpers而不是Partials

时间:2008-12-30 01:42:21

标签: ruby-on-rails helper partials

在rails应用程序中,在哪种情况下你会使用partial,你什么时候会使用帮助器?我发现两者非常相似,因为它们代表了标记片段。

这是否有约定?这是使用它们的“轨道方式”吗?

谢谢!

6 个答案:

答案 0 :(得分:30)

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

答案 1 :(得分:18)

部分是视图片段,视图片段在多个位置有用,并且被拉出以便删除重复。然而,底线是视图 - 独立或部分 - 用于演示。

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

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

只是我的$ .02。

答案 2 :(得分:8)

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

Basecamp开发用于最小化帮助程序中的HTML的情况 http://37signals.com/svn/posts/1108-what-belongs-in-a-helper-method

Viget dev对每个人进行基准测试,发现帮助者比部分人更快 http://www.viget.com/extend/helpers-vs-partials-a-performance-question/

答案 3 :(得分:2)

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

答案 4 :(得分:2)

我使用partials作为子模板(例如,有很多标记一次又一次地被使用的东西,比如博客文章),以及帮助处理显示更多逻辑事物的东西(一个只对管理员可见的div,for实例)。

答案 5 :(得分:0)

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

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