2

現在、次のような投稿のリストをレンダリングしています。

<%= 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 の同様の puts で。(_post puts は _name render の前です)。結果は次のとおりです。

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

なぜこれを行うのですか?1. _post が _name の前に来ること、および 2. post を渡すと、以前に取得したものではなく、post を使用することが予想されます。

このことを説明していただけますか。また、私が抱えている問題の解決策を教えていただけないでしょうか? ありがとうございました!

4

1 に答える 1