我想使用EC
模块的控制器,如EC::HomeController
。
# app/cotrollers/ec/home_controller.rb
class EC::HomeController < ApplicationController
def index
end
end
它适用于rails控制台。
[1] pry(main)> EC::HomeController
=> EC::HomeController
但在routes.rb
中,它不起作用......
# config/routes.rb
Rails.application.routes.draw do
namespace :ec do
namespace :home do
get "/" => :index
end
end
end
访问http://localhost:3000/ec/home
,然后获取
LoadError in Ec::HomeController#index
Unable to autoload constant Ec::HomeController, expected
/Users/wadako/coincheck/app/controllers/ec/home_controller.rb to define it
它加载Ec::HomeController
而非EC::HomeController
。
我不能使用rails4路由的资本模块名称吗?
答案 0 :(得分:3)
在config/initializers
中创建inflections.rb
。在此文件中定义:
ActiveSupport::Inflector.inflections(:en) do |inflect|
inflect.acronym 'EC'
end
这样您就可以在大写字母中使用模块名称。
答案 1 :(得分:1)
让我们处理routes.rb
!
Rails.application.routes.draw do
resources :home, only: :index, module: 'EC'
end
这应该会为您提供映射到home_path
EC:HomeController#index