我有用户并有店铺模型。
用户模型中的
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控制台上找到它们 但不在应用程序中
答案 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 %>