【发布时间】:2011-05-19 21:09:57
【问题描述】:
我正在针对旧数据库编写 Rails 应用程序。此旧数据库中的一个表有一个名为 object_id 的列。不幸的是,object_id 也是 Ruby 中每个对象的属性,因此当 ActiveRecord 尝试使用这些对象来制定查询时,它使用的是 Ruby 定义的object_id,而不是数据库中的值。
旧版应用程序非常庞大,代码行数超过一百万行,因此仅更改数据库中列的名称将是最后的选择。
问题:
1. 有什么方法可以让 ActiveRecord/Rails 为这个列使用别名或同义词?
2. Ruby 中有什么方法可以使object_id 方法的行为有所不同,具体取决于调用它的人?
3. 我可以简单地覆盖我模型中 object_id 方法的行为吗(我认为这是一个糟糕的想法,但不得不问)
非常感谢任何建议。
【问题讨论】:
标签: ruby-on-rails database activerecord