Rails 4 - Nested Resources -
user has_many tickets.
ticket belongs_to user (ticket.user_id)
routes.rb
resources :users resources :tickets end rake routes
user_tickets /users/:user_id/tickets(.:format) tickets#index users/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 tickets_controller.rb
def index @search = ticket.search(params[:q]) @tickets = @search.result.paginate(:page => params[:page], :per_page => 25) render 'shared/tickets.html.erb' end when hover on link, shows .../users/[the selected user's id]/tickets
when goes ticket/index page, shows tickets, not tickets selected user's id.
i'm pretty sure route incorrect, or may else entirely. appreciated.
edit
i think problem need call @tickets in tickets_controller/index method variety of ways, because want use view @tickets.all, @user.tickets, @facility.tickets, etc (to keep dry).
the same index list of tickets needs change, based on link whence came (whether comes user list, showing list of tickets user, or facility list, showing list of tickets facility). i'm doing horribly wrong somewhere.
possible solution try:
maybe need create custom routes, get 'users_tickets' => "users#users_tickets", put @tickets conditions in method , call shared/tickets.html.erb way.
sounds need step through association. did use
tickets_controller.rb
def index @user = user.find(params[:user_id]) @tickets = @user.tickets end in controller? if doesn't help, can post controller code?
Comments
Post a Comment