:: ActiveRecord_Associations_CollectionProxy:0x6b5e8a0

时间:2015-03-03 16:45:19

标签: ruby-on-rails ruby ruby-on-rails-4

我有用户并有店铺模型。

用户模型中的

class User < ActiveRecord::Base
	has_many :shops
	validates :shops, presence: true
end

和店铺模型

class Shop < ActiveRecord::Base
	belongs_to :user
	validates :user_id, presence: true
end

用户控制器中的

def show
    @shop = User.find(params[:id]).shops 

  end

在users / show

<%= render 'user' %>

<%= link_to 'Edit', edit_user_path(@user) %> |
<%= link_to 'Back', users_path %>

 <hr color="blue">
 

 <%= @shop%>

#<Shop::ActiveRecord_Associations_CollectionProxy:0x6b5e8a0> 

输出就像这样。没有显示用户商店。 我想展示属于这个用户的商店。

我可以通过运行User.find(1).shops在rails控制台上找到它们 但不在应用程序中

2 个答案:

答案 0 :(得分:0)

由于用户has_many购物,您需要对其进行迭代。

# UserController
def show
  @user = User.find(params[:id])
end

# users/show
<%= render 'user' %>

<%= link_to 'Edit', edit_user_path(@user) %> |
<%= link_to 'Back', users_path %>
<hr color="blue">

<% @user.shops.each do |shop| %>
  <%= shop.name %>
<% end %>

答案 1 :(得分:0)

看起来你并没有为用户遍历每个商店,而只是在你的视图中显示用户。所以你会想要这样的东西:

#controller
@shops = User.find(params[:id]).shops

#view
<% @shops.each do |shop| %>
  <%= shop %>
<% end %>