ruby-on-rails – Rails 4 – 命名空间中的缩写控制器给出“未初
发布时间:2020-12-17 03:07:11 所属栏目:百科 来源:网络整理
导读:我正在尝试在Rails 4中创建此控制器: Admin::EDMsController 在我的initializers / inflections.rb文件中,我已经定义了首字母缩略词: ActiveSupport::Inflector.inflections(:en) do |inflect| inflect.acronym 'EDMs' inflect.acronym 'EDM'end 我的route
我正在尝试在Rails 4中创建此控制器:
Admin::EDMsController 在我的initializers / inflections.rb文件中,我已经定义了首字母缩略词: ActiveSupport::Inflector.inflections(:en) do |inflect| inflect.acronym 'EDMs' inflect.acronym 'EDM' end 我的routes.rb文件有: namespace :admin do # ... some other resources ... resources :edms end 我的控制器在app / controllers / admin / edms_controller.rb中定义如下: class Admin::EDMsController < Admin::AdminController end 当我尝试访问/ admin / edms时,出现以下错误: uninitialized constant Admin::EDMsController 到目前为止我发现了什么: >如果我将其重命名为Admin :: EdmsController并删除变形定义(即除了缩写之外的所有内容都相同),它的工作原理 值得注意的是,我在admin命名空间中有其他控制器和资源可以正常工作. 所以看起来我可以有一个首字母缩略词控制器,或命名空间中的控制器,但不是两者. 有什么建议? 解决方法
看起来这是一个在4.2:
https://github.com/rails/rails/pull/14146中修复的错误
如果你无法升级,这应该工作: irb(main):001:0> ActiveSupport::Inflector.inflections(:en) { |inflect| inflect.acronym 'Admin/EDMs' } => /Admin/EDMs/ irb(main):002:0> 'Admin::EDMsController'.underscore => "admin/edms_controller" (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |