说我有UsersController#show
动作。它默认呈现users/show.html.erb
。
现在,我还有ProductsController#index
,它会收到Client
个ID,并显示一个包含属于该客户端的所有产品的表格。它呈现products/index.html.erb
。
我想在用户想要查看UsersController#show
时显示此产品列表。以下是这样做的一些想法:
UsersController#show
重定向到ProductsController#index
; products/index.html.erb
; UsersController#show
products/index.html.erb
复制到users/show.html.erb
。但是,我觉得这些解决方案不是做我想做的最好的解决方案。还有其他更好的选择吗?如果没有,我应该遵循上述哪一项?
答案 0 :(得分:0)
为什么不在show方法下的UsersController中传递与该用户相关的产品?你可以做点什么
def show
@products = Products.where(user_id: @user.id).paginate(:page => params[:page], :per_page => 3)
end
或者如果你正在使用设计我会做
def show
@products = Products.where(user_id: current_user.id).paginate(:page => params[:page], :per_page => 3)
end
然后在前面你可以通过调用
来渲染它为了进行分页,我使用了will_paginate gem