Ala*_*ano 2 ruby routes ruby-on-rails ruby-on-rails-4
我在路线上有这个:
Rails.application.routes.draw do
namespace :api do
namespace :v3_4 do
# .....
Run Code Online (Sandbox Code Playgroud)
和控制器 app/controllers/api/v3_4/base_controller
module Api
module V3_4
class BaseController < ApplicationController
# ......
end
end
end
Run Code Online (Sandbox Code Playgroud)
和 app/controllers/api/v3_4/another_controller
module Api
module V3_4
class AnotherController < ApplicationController
end
end
end
Run Code Online (Sandbox Code Playgroud)
耙路:
Prefix Verb URI Pattern Controller#Action
api_v3_4_test GET /api/v3_4/test(.:format) api/v3_4/base#test
api_v3_4_one GET|OPTIONS /api/v3_4/one(.:format) api/v3_4/another#one
api_v3_4 GET|OPTIONS /api/v3_4/two/:id(.:format) api/v3_4/another#two
Run Code Online (Sandbox Code Playgroud)
但是对于这个请求,我得到了 Routing Error Uninit Constant uninitialized constant Api::V34
请注意错误消息中没有下划线。但是我的项目根本没有V34行,既没有v34,也只有v3_4和V3_4
Rails _会变成一个单词分隔符,因此它将搜索Api :: V34,您可以通过编辑来更改该行为config/initializers/inflections.rb:
ActiveSupport::Inflector.inflections(:en) do |inflect|
inflect.acronym 'V3_4'
end
Run Code Online (Sandbox Code Playgroud)
此外,如果您想将Api名称空间更改为API,因为它是首字母缩写词,那么您也可以在此处进行操作:
ActiveSupport::Inflector.inflections(:en) do |inflect|
inflect.acronym 'V3_4'
inflect.acronym 'API'
end
Run Code Online (Sandbox Code Playgroud)
更多信息:http : //api.rubyonrails.org/classes/ActiveSupport/Inflector/Inflections.html
| 归档时间: |
|
| 查看次数: |
597 次 |
| 最近记录: |