私はこのルートを持っています:
match 'items/:location_no/:item_no' => 'items#location_item', :constraints => { :location_no => /.*/, :item_no => /.*/ }
私はこのリンクでそれを呼び出します: http://localhost:3000/items/whs/65484
これは私にこのエラーを与えます:
No route matches {:action=>"edit", :controller=>"item_details"}
項目番号 (id フィールドではありません) は 65484 ですが、65484s ( ) のように 1 つのアルファベット文字に変更すると、正しいコントローラーに入ります (ただし、最後の偽の s のhttp://localhost:3000/items/whs/65484s
ために項目が見つかりません)。 . 番号のみの場合、ルートと一致しない原因は何ですか? 同じ効果でルートの制約をスキップしようとしました。
要求に応じて、これらはアイテム ルートです。
item_details GET /item_details(.:format) item_details#index
POST /item_details(.:format) item_details#create
new_item_detail GET /item_details/new(.:format) item_details#new
edit_item_detail GET /item_details/:id/edit(.:format) item_details#edit
item_detail GET /item_details/:id(.:format) item_details#show
PUT /item_details/:id(.:format) item_details#update
autocomplete_item_name_items GET /items/autocomplete_item_name(.:format) items#autocomplete_item_name
edit_item_history_item GET /items/:id/edit_item_history(.:format) items#edit_item_history
items GET /items(.:format) items#index
POST /items(.:format) items#create
new_item GET /items/new(.:format) items#new
edit_item GET /items/:id/edit(.:format) items#edit
item GET /items/:id(.:format) items#show
PUT /items/:id(.:format) items#update
DELETE /items/:id(.:format) items#destroy
/items/:location_no/:item_no(.:format) items#location_item {:location_no=>/.*/}