【发布时间】:2014-09-18 21:44:10
【问题描述】:
我对轨道路由不知所措。 ´$.ajax -> lh:3000/nodes/search?q=blabla&_=1411073392872´ 路由到 Nodes#show 并且显然在那里失败,因为 show 需要像 /nodes/3/ 这样的 id 才能工作。
搜索路线
welcome_index GET /welcome/index(.:format) welcome#index
root GET / welcome#index
nodes GET /nodes(.:format) nodes#index
POST /nodes(.:format) nodes#create
new_node GET /nodes/new(.:format) nodes#new
edit_node GET /nodes/:id/edit(.:format) nodes#edit
**node GET /nodes/:id(.:format) nodes#show**
PATCH /nodes/:id(.:format) nodes#update
PUT /nodes/:id(.:format) nodes#update
DELETE /nodes/:id(.:format) nodes#destroy
edges_to_node GET /nodes/:id/toedges(.:format) nodes#searchtoedges
edges_from_node GET /nodes/:id/fromedges(.:format) nodes#searchfromedges
search_edges GET /edges/search(.:format) edges#search
**search_nodes GET /nodes/search(.:format) nodes#search**
在 routes.rb 我得到了这个
resources :nodes
resources :edges
get 'nodes/:id/toedges', to: 'nodes#searchtoedges', as: 'edges_to_node'
get 'nodes/:id/fromedges', to: 'nodes#searchfromedges', as: 'edges_from_node'
get '/edges/search', to: 'edges#search', as: 'search_edges'
**get '/nodes/search', to: 'nodes#search', as: 'search_nodes'**
所有其他路线都有效,尤其是那些 searchtoedges 路线。如果这很重要,我会在 ajax 调用中使用 /nodes/search。对 ajax 的响应是 RecordNotFound 异常,抱怨 show 操作中没有 id。所以由于某种原因,它会路由到 ´/nodes/:id(.:format) => nodes#show´。我不明白为什么。
【问题讨论】:
标签: ruby-on-rails ajax routes