gpt4 book ai didi

ruby-on-rails - Rails - 部分渲染接收到错误的对象?

转载 作者:太空宇宙 更新时间:2023-11-03 16:28:38 25 4
gpt4 key购买 nike

我目前正在呈现这样的帖子列表:

<%= 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 放置在 _name 渲染之前)。这是结果:

_name user: User1
_post user: User1
_name user: User1
_post user: User2
_name user: User1

为什么要这样做?您会期望 1. _post 出现在 _name 之前,并且 2. 当您传入 post 时,它会使用 post,而不是之前得到的 post。

您能向我解释一下吗,也许可以为我提供解决问题的方法?谢谢!

最佳答案

也许你应该在找到主题时包括帖子,Topic.find(params[:topic_id]).includes(:posts)解决了n+1个查询问题

关于ruby-on-rails - Rails - 部分渲染接收到错误的对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19964184/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com