gpt4 book ai didi

ruby-on-rails - Rails 路由格式

转载 作者:行者123 更新时间:2023-12-04 05:33:51 27 4
gpt4 key购买 nike

我正在尝试构建一个单页应用程序,但在 Rails 路由方面遇到了问题。基本上我希望管理路由中的所有内容都指向管理 Controller 索引,但 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 的 Controller 中

更新 2
嗯,当我转到/admin/users 时,现在无法正常工作,我收到了一个 Not Acceptable 错误。我认为第一条规则不会匹配并匹配第二条规则。

最佳答案

如果您将 json 块向上移动并为每个 json 资源强制设置格式段,它会起作用吗?在 Rails 3.2 中,这通过设置 发生。格式选项 :

namespace :admin do
constraints(format: "json") do
resources :items, format: true
resources :users, format: true
end

constraints(format: "html") do
match "*path" => "admin#index"
end
end

关于ruby-on-rails - Rails 路由格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12233101/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com