Rails自动加载完全大写的名称,如API

Cyr*_*ris 25 ruby ruby-on-rails constants

我有一些结构

  • /lib/dokuwiki.rb
  • /lib/dokuwiki/exception.rb
  • /lib/dokuwiki/api/connection.rb

dokuwiki.rb

require 'dokuwiki/exception.rb'

module Dokuwiki
  ...
Run Code Online (Sandbox Code Playgroud)

DokuWiki的/ API/connection.rb

module Dokuwiki
  module API
    class Connection
      ...
Run Code Online (Sandbox Code Playgroud)

现在,当我尝试Dokuwiki::API::Connection.new从控制器(没有任何require)调用时,Rails默认常量自动加载失败.我相信这是因为::API模块应该有一个名为/a_p_i/而不是/api/丑陋的文件夹.

当然我可以在主要的'/lib/dokuwiki.rb'文件中要求'dokuwiki/api/connection.rb',但是它不会自动重新加载这个类(这在开发环境中有点烦人)

我该怎么做才能保留好的/api/文件夹名称,并且能够在不/lib/dokuwiki/api/connection.rb重新启动服务器的情况下进行一些实时修改?

gma*_*iar 57

有一个名为的文件config/initializers/inflections.rb.

加入其中

ActiveSupport::Inflector.inflections do |inflect|
  inflect.acronym 'API' 
end
Run Code Online (Sandbox Code Playgroud)

API名称空间将作为名为的目录提供 api