我正在尝试构建一个单页应用程序并且遇到 Rails 路由问题。基本上我希望管理路由中的所有内容都到管理控制器索引,但 json rails 到特定资源。我试过了
namespace :admin do
constraints :format => 'html' do
match '*path' => 'admin#index'
end
constraints :format => 'json' do
resources :user, :items
end
end
在这种情况下,路径将贪婪地匹配并匹配 /admin/users.json 如果我将 :format => 'json' 块向上移动。它匹配 /admin/users
看起来我指定的约束块根本不起作用。
Rails 3.2.6 版 rake 路由
/admin/*path(.:format) admin/admin#index {:format=>"html"}
admin_users GET /admin/users(.:format) admin/users#index {:format=>"json"}
/* 管理员用户和管理员项目的其他正常资源路由 */
我检查了,没有路由 /admin/users(.format) admin/users#index {:format=>"html"}
所以看起来这正是我想的那样。但不知何故仍然不起作用
更新: 如果它向上移动 json 块,我已经设法让它工作但是如果 html 块在顶部。它仍然给我带来问题。但我认为现在对我来说已经足够好了。多谢你们
原来的问题是我用了request.xhr?在我应该使用 response_to 的控制器中
当我转到 /admin/users 时,更新 2 Uhm 现在无法正常工作,我收到了一个不可接受的错误。我认为第一条规则不会匹配并匹配第二条规则。