我目前正在呈现这样的帖子列表:
<%= render partial: "layouts/modules/forums/posts/post", collection: @topic.posts %>
这工作正常。但是,在 _post.html.erb 内部,我调用
<%= render partial: "layouts/users/name", user: post.user %>
这会呈现名称,但它有点重用它获得的第一个对象。为了帮助解释,我添加了一些调试:
<% puts("_post user: "+post.user.name) %>
在 _post.html.erb 中,类似的放入 _name erb。(_post puts 在 _name 渲染之前)。这是结果:
_name user: User1
_post user: User1
_name user: User1
_post user: User2
_name user: User1
为什么这样做?您会期望 1. _post 出现在 _name 之前,以及 2. 当您传入 post 时,它会使用该帖子,而不是之前获得的帖子。
您能否向我解释一下,也许可以为我遇到的问题提供解决方案?谢谢!