ruby-on-rails - 我何时何地需要 Rails 应用程序中的文件?

标签 ruby-on-rails ruby

假设我的 Rails 应用程序的 lib 目录中有以下文件:

#lib/proxy.rb
module SomeService
  class ServiceProxy
    def do_something
    end
  end
end

如果我想在模型中使用 ServiceProxy,我可以这样使用它:

#app/models/product.rb
require 'proxy'

class Product < ActiveRecord::Base
  def do_something
    proxy = SomeService::ServiceProxy.new
    proxy.do_something
  end
end

这行得通,但我注意到如果我想在另一个模型中使用 ServiceProxy,我不需要在第二个模型文件中“需要‘代理’”。似乎在任何模型中“需要'代理'”一次都会将其添加到查找路径中。

谁能解释这种行为以及 Rails 应用中围绕它的最佳实践?

谢谢!

更新: 根据下面弗洛伊德的回答,如果我的 ServiceProxy 文件是这样保存的,

#lib/some_service/service_proxy.rb

那么我就不必明确要求该文件了。

最佳答案

This是关于此问题的有用帖子。

简而言之,只有遵循正确的命名约定,Rails 才会自动加载 lib 目录中的类。

关于ruby-on-rails - 我何时何地需要 Rails 应用程序中的文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2120824/

相关文章:

ruby-on-rails - 使用 Rails 中的回形针上传到谷歌驱动器

ruby-on-rails - 运行 rails server 或 rails generate 后出错

ruby-on-rails - 如何使用 Rspec 和 Capybara 测试重定向

ruby - Ruby 中的 Eratosthenes 筛法

ruby - Globbing 不适用于 Minitest - 仅运行一个文件

ruby - 运行 ruby​​w 或使用 ocra 构建的 exe 时弹出 Cmd

ruby-on-rails - 当我覆盖它的邮件程序时,Devise 正在发送带有空白正文的电子邮件

ruby-on-rails - 如何删除Rspec之前留下的测试数据(:all) hook?

ruby-on-rails - cancan authlogic gem 的编辑当前用户配置文件错误

ruby-on-rails - 限制 Rails 中的两个循环