Я в настоящее время делает список сообщений, как это:Rails - Частичный рендер получает неправильный объект?
<%= 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.html.erb, вообще? – rogerdpack
@rogerdpack Я предоставил эту строку, '<% = render partial:" layouts/modules/forums/posts/post ", collection: @ topic.posts%>" отображает страницу _post.html.erb –
что делать, если вы это сделаете как render ...: as =>: post? Какова ценность @ topic.posts? – rogerdpack