我正在撰写一个包含帖子和评论的网络应用。由于我需要在很多地方显示一堆带有评论的帖子,我正在考虑重用代码。但是我不确定使用显示_posts.html.erb
中每个帖子的部分@posts
是否正确,或者通过posts控制器中的show动作直接实现它,并在必要时在其他操作中呈现此操作观点。任何人有任何想法?
答案 0 :(得分:1)
对于这个用例,partials是你最好的选择。
正如你所说,我需要在很多地方展示一堆带有评论的帖子。 Rails的一个主要前提是不要重复自己。在各种控制器操作中检索@posts
然后使用视图中的部分来渲染这些帖子/注释,这样更整洁(并且编程方式合理)。否则,你将在其他视图中呈现show
动作 - 视图并不真正意味着渲染动作,而是相反。反而。
答案 1 :(得分:0)
是的,根据 DRY 原则,您正在以完美的方式思考,您应该创建一个部分。
一个好的做法是不要使用@posts
,而应该将帖子作为本地人传递:
<%= render 'posts', posts: @posts %>
通过这种方式,您可以在任何地方使用此部分,只提供帖子作为本地人,而不依赖于@posts
实例变量。