Rails中不区分大小写的路由

我如何才能将路线的一部分变成大写?例如,我有一条路线,scim/v2/user但我希望它是scim/v2/User(用户大写)。如何在仍使用的同时实现此目标resource

路线文件:

namespace :scim, defaults: { format: :json } do
  namespace :v2 do
    resource :user, only: [:create, :update, :show]
  end
end

当我跑步时$rake routes,我得到以下信息:

                       scim_v2_user POST               /scim/v2/user(.:format)                                                           scim/v2/users#create {:format=>:json}
                                 GET                /scim/v2/user(.:format)                                                           scim/v2/users#show {:format=>:json}
                                 PATCH              /scim/v2/user(.:format)                                                           scim/v2/users#update {:format=>:json}
                                 PUT                /scim/v2/user(.:format)                                                           scim/v2/users#update {:format=>:json}

我想选择路线/scim/v2/User或使其保持不变,但有一种映射/scim/v2/User到的方法/scim/v2/user

尼克·汤姆林

默认情况下,resource希望在资源名称和控制器之间直接映射,但是您可以简化使用大写的资源名称,并手动指定控制器来解决此问题:

  namespace :scim, defaults: { format: :json } do
    namespace :v2 do
      resource :User, :controller => 'users', only: [:create, :update, :show]
    end
  end

产生

      Prefix Verb  URI Pattern             Controller#Action
scim_v2_User GET   /scim/v2/User(.:format) scim/v2/users#show {:format=>:json}
             PATCH /scim/v2/User(.:format) scim/v2/users#update {:format=>:json}
             PUT   /scim/v2/User(.:format) scim/v2/users#update {:format=>:json}
             POST  /scim/v2/User(.:format) scim/v2/users#create {:format=>:json}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章