【发布时间】:2016-09-19 12:44:26
【问题描述】:
我正在运行几年前相当大的 Rails 4.1 应用程序,其中一个中心模型有一个名为 model_name 的列。
在尝试将应用升级到rails 4.2失败后,我们发现这个列名实际上是一个rails保留字。这一点以前没有引起我们的注意,因为使用该名称的 rails 方法是一个私有方法。现在,由于 rails 4.2 这是公开的,并且 rails 抱怨命名混乱的时间很长。
我真的真的不想重命名该列,因为它在我们的应用程序中的任何地方都被引用,即使在大量序列化数据、历史 URL 等中也是如此。
除了重命名列之外,还有什么关于替代升级过程的建议吗?
【问题讨论】:
-
除了修补/维护自己的分叉路轨之外,我不确定您是否有那么多选择。由于在 rails 源代码中到处都使用了 model_name。
-
我只是采用 OOP 方法并在您的模型类中定义一个 model_name 方法来满足您的需要。应该只在需要时覆盖 rails 默认值,因为您在 4.1 中没有遇到问题。
标签: ruby-on-rails ruby ruby-on-rails-4 reserved-words