Я пишу функциональный тест, но он не проходит со следующей ошибкой:
1) Failure:
test: routing should route GET /categories/1/inventory_items/2/edit to/from {:action=>"edit", :controller=>"inventory_items", :category_id=>"1", :id=>"2"}. (InventoryItemsControllerTest)
[]:
No route matches "/categories/1/inventory_items/2/edit"
с маршрутом:
resources :categories, :constraints => lambda { |request| Category.exists?(request.params['category_id']) } do
resources :inventory_items
end
и маршрутами моего рейка:
category_inventory_items GET /categories/:category_id/inventory_items(.:format) inventory_items#index
POST /categories/:category_id/inventory_items(.:format) inventory_items#create
new_category_inventory_item GET /categories/:category_id/inventory_items/new(.:format) inventory_items#new
edit_category_inventory_item GET /categories/:category_id/inventory_items/:id/edit(.:format) inventory_items#edit
category_inventory_item GET /categories/:category_id/inventory_items/:id(.:format) inventory_items#show
PUT /categories/:category_id/inventory_items/:id(.:format) inventory_items#update
DELETE /categories/:category_id/inventory_items/:id(.:format) inventory_items#destroy
Я попытался создать Category
объект с :id
, равным 1, но все равно не получилось.Я сделал puts
на своем маршруте, а хэш params
равен {}
!Я использую средство сопоставления со следующим образом:
should route(:get, "/categories/1/inventory_items/2").to(:action => "show", :controller => "inventory_items", :category_id => 1, :id => 2)
, и когда я делаю puts
внутри средства сопоставления, params
правильно заполняется:
{:action=>"show", :controller=>"inventory_items", :category_id=>"1", :id=>"2"}
Любая помощь приветствуется, спасибо!