User
has_many Tickets
。
Ticket
属于_to User
( ticket.user_id
)
路线.rb
resources :users do
resources :tickets
end
耙路线
user_tickets GET /users/:user_id/tickets(.:format) tickets#index
用户/index.html.erb
<%= link_to("View User's Tickets", user_tickets_path(user)) %>
users_controller.rb
private
def set_user
@user = User.find(params[:id])
@tickets = @user.tickets
end
门票控制器.rb
def index
@search = Ticket.search(params[:q])
@tickets = @search.result.paginate(:page => params[:page], :per_page => 25)
render 'shared/tickets.html.erb'
end
当我将鼠标悬停在链接上时,它显示.../users/[the selected user's id]/tickets
当它进入工单/索引页面时,它会显示所有工单,而不仅仅是具有所选用户 ID 的工单。
我很确定我的路线不正确,或者可能完全是另外一回事。任何帮助表示赞赏。
编辑
我认为我的问题是我需要以@tickets
多种方式调用 ticket_controller/index 方法,因为我想将该视图用于@tickets.all
、@user.tickets
、@facility.tickets
等(以使其保持干燥)。
相同的工单索引列表需要根据其来源链接进行更改(无论是来自用户列表,显示该用户的所有工单列表,还是来自设施列表,显示所有工单的列表)该设施)。我只是在某个地方做错了什么。
可能的解决方案我会尝试:
也许我需要创建自定义路由,例如get 'users_tickets' => "users#users_tickets"
,然后将@tickets
条件放入该方法并以这种方式调用 shared/tickets.html.erb。