我有一些 struct

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

dokuwiki.rb

require 'dokuwiki/exception.rb'

module Dokuwiki
  ...

dokuwiki/api/connection.rb

module Dokuwiki
  module API
    class Connection
      ...

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

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

我能做些什么来保持nice /api/文件夹的名称,并能够在不重新启动服务器的情况下对/lib/dokuwiki/api/connection.rb进行一些实时修改?

推荐答案

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

再加上

ActiveSupport::Inflector.inflections do |inflect|
  inflect.acronym 'API' 
end

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

Ruby-on-rails相关问答推荐

Web控制台不会出现在例外页面Rails 7.1.1上

仅在两个子域间共享Rails cookies,并为所有其他子域使用单独的cookie

Rails 6:强类型原始 SQL 查询返回数组类型

当我必须更改 rspec 中的方法时,如何检测时间?

如何将动态 Ruby 代码嵌入到 Slim 模板中的javascript部分?

如何在 Rails 3 中使用 Capybara 单击具有相同文本的第二个链接?

Rails Migration将字符串转换为整数?

如何使用 capistrano deploy 定位特定的提交 SHA

使用 javascript 提交 Rails 远程表单

Rails如何对列求和?

在 PostgreSQL 中强制字符串的最大长度

在 Rails 生产中禁用assets资源 缩小

如何检测导致 Rake 中的弃用警告的原因

为什么 Ruby on Rails 使用 http://0.0.0.0:3000 而不是 http://localhost:3000?

'respond_to' 格式语句中的 `:location => ...` 和 `head :ok` 是什么意思?

以最Ruby 风格计算 ActiveSupport:TimeWithZone 天数的差异?

Ruby:如何将一种方法接收到的所有参数和块传递给另一种方法?

用于在多行上链接调用的 Ruby 约定

在 Rails 3 中设置会话超时

我什么时候需要在 Rails 中重新启动服务器?