Rails中partials的用途是什么?

时间:2013-07-03 16:59:25

标签: ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.1

在Rails中为什么我会使用偏序?解释它就像我5岁。我根本不明白为什么有人会用它们。

5 个答案:

答案 0 :(得分:7)

First thing ,请在此处阅读Official Rails guide for partials

<强> Now some benefits

  1. 它使您的视图保持清洁和系统化, DRY Philosphy

  2. 最重要的地方 部分进入图片是当你想重用一些 各种观点中的组成部分通常开发人员创造一种 shared/common folder 部分位于其中并在其中使用 各种观点。

  3. 使用Rails的 “if” or “unless” 语句有条件地加载部分内容

  4. 如果模板需要 iterate over a collection 并为每个元素呈现子模板,这将非常有用。

  5. 您的不同部分也可以 different layouts

  6. Partial API here列出了所有可以让您了解它的各种方法。

  7. 将视图分成局部视图也可以帮助您在网页某些部分的 proper fragment caching Fragment Caching)中。更好的管理。

  8. 如果你进入 Metaprogramming ,那么你也可以通过创建动态帮助器在你的部分中添加这种味道。正如Stackoverflow回答here

答案 1 :(得分:3)

它们是避免重复自己的方便方法。

例如,您可能有多个页面显示菜单。不要在每个视图中重复菜单的标记,而是将其放在局部并在每个页面上渲染。

在其他情况下,通过将复杂视图分成几个部分,可以使复杂视图更易于管理。

答案 2 :(得分:0)

您通常使用partials重用代码:假设您有一个帖子列表,每个帖子都有一个带有图像,标题和摘录的小预览。在您的博客主页中,您有一个帖子列表,当您按年度对帖子进行分组时,您会显示帖子列表,当您搜索术语时,您必须显示帖子列表。

您可以将该逻辑移动到部分逻辑,并在需要时随时继续引用该逻辑,而不是重复显示后期预览的逻辑。您可以保持代码DRY并减少代码编写。此外,如果您意识到要添加新内容,则可以更改部分而不是去寻找模板,这些模板会在您的应用程序中显示帖子预览。

答案 3 :(得分:0)

好吧,因为你想要使用重用代码的方法的原因完全相同。假设您的应用程序中有一个状态区域,您希望在不同的位置显示该区域。您可以将该状态区域的视图代码放在partial中,然后在相应的页面上使用该部分。

由于partials也可以使用参数,因此可以非常轻松地重用视图代码。此外,您可以将部分内容专用于您的应用程序的某些模型。这样,您只需调用render @model,并通过命名约定选择正确的部分。

答案 4 :(得分:0)

部分允许您将布局代码分成一个文件,该文件将在整个布局和/或多个其他布局中重复使用。

例如,您可能有一个要在您网站上的10个不同页面上显示的登录表单。您可以将部分代码编写一次,而不是将表单代码编写10次,而在10个页面的每个页面中,只需将该部分包含在布局中的适当位置即可。如有必要,您可以将局部实例变量传递给partial以使它们可用。

这样,如果您需要更改表单,您只需要更改部分代码一次,而不是在所有布局中更改10次。

以下是部分内容指南:http://guides.rubyonrails.org/layouts_and_rendering.html#using-partials

关于将数据/变量转换为部分内容的更多讨论:Pass a variable into a partial, rails 3?