[英]Can I use capital module name for rails4 routes like 'EC'?
我想使用带有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路由使用大写模块名称吗?
在config/initializers
创建inflections.rb
。 在此文件中定义:
ActiveSupport::Inflector.inflections(:en) do |inflect|
inflect.acronym 'EC'
end
这将允许您使用大写字母的模块名称。
让我们在该routes.rb
上工作!
Rails.application.routes.draw do
resources :home, only: :index, module: 'EC'
end
这应该给您一个路由助手home_path
,它映射到EC:HomeController#index
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.