繁体   English   中英

我可以对诸如“ EC”之类的rails4路由使用大写模块名称吗?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM