如何在rails 3中组织共享部分

时间:2012-01-28 05:34:08

标签: ruby-on-rails

我很好奇人们如何在这个特定情况下组织他们的共享部分。在我的应用程序中,列表索引可以显示在/ listings或/ users /:id / listings urls中。基本上要么看到所有列表或我的列表。

两个关联的视图/app/views/listings/index.html.haml和/app/views/users/listing/index.html.haml当前共享一个部分,用于执行大部分渲染。除了标题,标题,后退链接以及一些文本(如果没有列表)之外的所有内容。

你会在哪里找到这个部分。我在保持它接近主要列表资源并且还注意到它被更广泛地共享之间徘徊...

2 个答案:

答案 0 :(得分:1)

如果是特定列出listings的部分内容,那么我会投票将其放入app/views/listings/。如果它处理更复杂或细微的数据集合,那么它应该放在一个公共文件夹中(我看到它叫shared/common/widgets/,但这只是一个优先事项)。

我认为关键在于它是否可以被归类为处理特定对象显示的东西,或者它是否只是在整个应用程序中重复的一些任意视图代码块。

答案 1 :(得分:0)

假设您的控制器继承自ApplicationController,并且您的部分名称为_listing.html.erb,那么您可以将文件放在app/views/application/_listing.html.erb,并使用render "listing"进行渲染

要详细了解其工作原理,see the RailsCast episode on template inheritance

app/views/shared中放置常用的部分也是一种有效的方法,但在渲染它们时需要使用完整路径,例如render "shared/listing"