如果我的术语不在这里,请道歉。
我有一个用户模型。我有一个产品模型。用户有许多产品和产品属于用户。
我正在尝试建立一个用户索引页面,其中显示所有用户及其相关产品,其中包含指向各个用户页面的链接。我的SHOW页面按预期运行,但我不知道如何在索引视图中显示用户的产品。
显示(此作品)
控制器的
def show
@user = User.find(params[:id])
@product = @user.products
end
视图的
<%= @user.name %>
<% if @user.products.any? %>
Product
<%= render @product %>
<% end %>
产品部分(上面引用)
Serial Number: <%= product.serial %>
INDEX(这不起作用)
控制器的
def index
@users = User.paginate(page: params[:page])
@product = @users.product #trying to show
end
查看
我在这里不知所措。我认为有意义的东西对我不起作用。
我想做点什么
<%= user.product.serialnumber %>
或
<%= user.product.id %>
如何在视图中显示用户产品的属性?为什么它在我的SHOW动作/视图中部分工作,而不是在我的INDEX动作中?我必须使用部分?
答案 0 :(得分:0)
对于您的索引操作,@users
是用户的集合,而在您的节目@user
中是单个用户对象。
当您说@users.product
时,您在集合对象而不是用户对象上调用产品。因此,您需要做的是,在视图中迭代@users
集合并在对象上调用产品
像
这样的东西<% @users.each do |user| %>
<%user.products.each do |product|%>
<%= user.name%>
<%= product.serialnumber%>
<%= product.id%>
<%end%>
<% end %>