如果我的 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.
在构建我的 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.