所以我有一个基本的rails应用程序,用户可以在其上投票 - 现在我想显示一个用户列表,其中提升了视图的引脚(app / views / pins / show.html.erb)
应用/模型/ user.rb
has_many :pins
has_many :votes, dependent: :destroy
has_many :upvoted_pins, through: :votes, source: :pin
应用/模型/ pin.rb
has_many :votes, dependent: :destroy
has_many :upvoted_users, through: :votes, source: :user
应用/控制器/ pins_controller.rb
def show
@disable_nav = true
@pin = Pin.friendly.find(params[:id])
@pin.upvoted_users
end
然后我添加了代码来渲染谁在app / views / pins / show.html.erb中赞成了引脚
<ul><li><%= @pin.upvoted_users %></li></ul>
但是当我加载页面时它显示了一个关联错误:
#<ActiveRecord::Associations::CollectionProxy::ActiveRecord_Associations_CollectionProxy_User:0x007fddde186370>
这很奇怪,因为当我在我的rails控制台中检查@ pin.upvoted_users时,我得到了正确支持该引脚的用户。
有什么想法吗?
答案 0 :(得分:1)
这是由于lazy loading。
要列出用户,您可以使用循环,例如:
<ul>
<% @pin.upvoted_users.each do |user| %>
<li><%= user.name %></li>
<% end %>
</ul>
答案 1 :(得分:0)
解决!
如果有人面临同样的问题,这是我自己的一个愚蠢的错误: 您可以渲染赞成这些引脚的用户列表:
<% @pin.upvoted_users.each do |user| %>
<ul><li><%= user.name %></li></ul>
<% end %>