如何确保保留字不会与 Ruby、Rails 4 或 gem 列表中的 gem 冲突

How can I ensure a reserved word will not conflict with Ruby, Rails 4, or a gem in my gemlist

我有一个 Rails4 应用程序,我想在其中添加一个名为 'Parameters' 的模型,就模型用途而言,这是一个不错的选择,但我担心它也是一个常见的编程任期。

什么是最佳实践(各个步骤)以确保:

Parameters  
parameter.thing

... 不会与 Ruby、Rails 或我的特定 Gem 列表中的保留字冲突吗?

像 RubyMine 这样的 IDE 应该在您使用保留字时通过给文本着色来警告您,但是对于像我这样使用美化文本编辑器的人,您可以随时查看 Rails related reserved words 的列表当你不确定时。

Ruby有一个开放classes的概念。也就是说,当 class MyClass 在某处定义时,在您的代码中包含以下内容是完全有效的:

class MyClass
  def another_method
    # do something useful
  end
end

也就是说,此操作没有“类似反射”的机制,因为这是 Ruby 的工作方式。

有人可能会像这样构建复杂的逻辑:

  • 运行 应用程序没有新 Parameters class 已加载;
  • 呼叫$defined = const_get('Parameters') || true rescue false;
  • 使用$defined global(这里为了举例而设为global)判断名称是否免费。

或:

甚至

  • 解析来源。

但我不会采用上述任何解决方案。只需将您的 class 称为 MyAppParameters 并使用这个名字即可。