В моем файле rout.rb настроены следующие маршруты:
resources :people do
collection do
get :search
end
end
Когда я выполняю действие get для URL: http://localhost:3000/people/search.json?term=stepeb, сервер сообщает, что отвечаетshow action, с правильным параметром term, но также с параметром id, установленным в «search».
Проблема, на мой взгляд, состоит в том, что URL-адрес show url будет следующим:
/people/:id
и я считаю, что маршрутизатор соответствует этому маршруту до того, как он попадет в / people / search
Если это так, как будут работать маршруты на основе сбора?Разве они не попадутся под действие шоу?
Соответствующая часть рейк-маршрутов выглядит следующим образом:
search_people GET /people/search(.:format) {:action=>"search", :controller=>"people"}
GET /people(.:format) {:action=>"index", :controller=>"people"}
people POST /people(.:format) {:action=>"create", :controller=>"people"}
new_person GET /people/new(.:format) {:action=>"new", :controller=>"people"}
GET /people/:id(.:format) {:action=>"show", :controller=>"people"}
PUT /people/:id(.:format) {:action=>"update", :controller=>"people"}
person DELETE /people/:id(.:format) {:action=>"destroy", :controller=>"people"}
edit_person GET /people/:id/edit(.:format) {:action=>"edit", :controller=>"people"}