首页 > 解决方案 > 在 Rails 5 中,如何呈现查询的输出?

问题描述

我正在尝试在我的视图中呈现查询的输出。我正在运行 Rails 版本 5.4.2.1

@users = User.with_attached_avatar.where("id not in (:list)", list: xyz)

视图代码是

<ul>
<%= @users %>
</ul>

例如,当控制器发送@users = @team.members(假设成员是用户)并且定义了_user.html.erb部分时,视图代码将起作用。所以当我使用这种技术来渲染关联对象列表时没有问题。

虽然查询本身是成功的(我检查过),但视图只打印出返回的关系对象的字符串表示#<User::ActiveRecord_Relation:0x00007f9468025478>,而不是列表。

我可以看到查询返回一个ActiveRecord_Relation对象,但一个关联@user.messages会返回一个ActiveRecord_Associations_CollectionProxy.

如何将数组呈现为列表,就像您可以使用关联和部分一样?

标签: ruby-on-railsactiverecord

解决方案


这应该工作

<%= render partial: "user", collection: @users, as: :user %>
//_user.html.erb
<li>User info: <%= user.name %></li>

推荐阅读