在我的 Rails Gemfile 中,我添加了一个新的 gem。它的使用方式如下:
Email::Client
我现在遇到的问题是我的 Rails 应用程序中还有一个名为 Email
的类。现在有时当我尝试初始化它时会收到以下错误:
Email.new # >> undefined method 'new' for Email:Module
可能是因为Email
是gem中的一个Module
。我该如何解决这个问题?有没有办法为 gem 模块命名?我不想重命名我的电子邮件类。
最佳答案
I don't want to rename the Email-Class.
但这就是你必须做的。您的代码是您唯一可以控制的东西。重命名/别名 (MyEmail
) 或命名空间 (MyApp::Email
)。
顺便说一句,这次你轻松了。想象一下,如果另一个 Email
也是一个类,会发生什么。突然之间,你所有的方法都消失了。您添加或更改了一种方法,但您的电子邮件看不到它。这可能会导致调试 session 令人沮丧。
关于ruby-on-rails - 将 gem 类放入命名空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44561192/