我应该使用partial还是show.html.erb?

时间:2013-06-02 05:09:12

标签: ruby-on-rails ruby model-view-controller partial

我正在撰写一个包含帖子和评论的网络应用。由于我需要在很多地方显示一堆带有评论的帖子,我正在考虑重用代码。但是我不确定使用显示_posts.html.erb中每个帖子的部分@posts是否正确,或者通过posts控制器中的show动作直接实现它,并在必要时在其他操作中呈现此操作观点。任何人有任何想法?

2 个答案:

答案 0 :(得分:1)

对于这个用例,partials是你最好的选择。

正如你所说,我需要在很多地方展示一堆带有评论的帖子。 Rails的一个主要前提是不要重复自己。在各种控制器操作中检索@posts然后使用视图中的部分来渲染这些帖子/注释,这样更整洁(并且编程方式合理)。否则,你将在其他视图中呈现show动作 - 视图并不真正意味着渲染动作,而是相反。反而。

答案 1 :(得分:0)

是的,根据 DRY 原则,您正在以完美的方式思考,您应该创建一个部分。

一个好的做法是不要使用@posts,而应该将帖子作为本地人传递:

<%= render 'posts', posts: @posts %>

通过这种方式,您可以在任何地方使用此部分,只提供帖子作为本地人,而不依赖于@posts实例变量。