ruby 不确定如何在erb中迭代两个数组?

kcrjzv8t  于 2022-11-04  发布在  Ruby
关注(0)|答案(1)|浏览(80)

我是ruby和erb的新手。我正在尝试迭代两个数组。我想打印匹配的消息详细信息和用户详细信息,但到目前为止,我只是在每个消息旁边打印了“name1 name123”,这是错误的。如果有任何帮助,将不胜感激,谢谢?
名称1名称123
消息1 2022年6月8日12:00:00姓名1姓名123
消息2 2022年9月7日13:00:00姓名1姓名123
消息3 2022年8月6日15:00:00姓名1姓名123
2022年10月8日13时48分

<html>
        <body>
        <h1>Peeps</h1>
            <%@peeps.each do |peep|%>
            <%@users.find do |user|%>
            <% user.id == peep.user_id%>
            <%= user.name%> <%= user.username %></br></br>

            <%=peep.message%> </br><%=peep.time_stamp%>

            <%end%>
            <%end%>
        </body>

    </html>
toiithl6

toiithl61#

如果将操作拆分为多个部分,就可以摆脱@users上的内部循环--首先选择属于@users中任何用户的每个peep,然后进行打印;

user_ids = @users.map(&:id)
@peeps
  .select { |peep| user_ids.include?(peep.user_id) }
  .each do |peep|
    user = @users.find { |user| user.id == peep.user_id }

    # Here you get access to peep and user
  end

相关问题