如果我的 rails class 被保留的 public 方法覆盖,我应该担心吗?

Should I be concerned if my rails class is overridden by a reserved public method?

在构建我的 rails 应用程序时,我还不知道有某些 class 名称或词是保留使用的。我做了一个名为 "Protocol" (class Protocol < ApplicationRecord) 的 class,netbeans IDE 说它被覆盖了。

我现在可以看到 "protocol()" 是 public 方法 在 rails 中,因此 netbeans 的标志: https://apidock.com/rails/ActionDispatch/Http/URL/protocol

但是,我将class命名为"Protocol",并没有将任何方法命名为"Protocol"。我将花费一些时间来修复这个错误(重命名所有关联并重新迁移表并移动数据等)。

即使遇到这个问题,一切似乎都运行良好。谁能解释一下,如果我不更改它,现在我的应用程序中可能会出现什么问题?

不,您不必担心。 Rails 中没有 Protocol class,即使有,它也很可能被命名空间。

可以通过命令行生成模型来测试是否保留。例如,如果您尝试生成一个名为 ActiveSupport 的模型...

$ rails g model ActiveSupport

你会得到

The name 'ActiveSupport' is either already used in your application or reserved by Ruby on Rails. Please choose an alternative and run this generator again.