【发布时间】:2013-01-07 16:55:19
【问题描述】:
我正在考虑选择 rails 的 ActiveRecord 来访问旧数据库。它的名称真的很混乱,所以在模型中使用它的列名不是一个好主意。
设置表名非常简单。但是我有没有办法重命名列名,只在模型中?
约定优于配置,但在这种情况下,我无法更改旧数据库名称。
使用 ActiveSupport 中的 alias_attribute 并不能解决我的问题,因为对象在序列化或打印时仍会显示旧列名。例如,我需要以 JSON 格式返回这些模型,而 alias_attribute 不适合这种情况。
【问题讨论】:
-
看起来像 [Alias for column names in Rails] 的副本:stackoverflow.com/questions/4014831/…
-
并非如此。他在谈论别名列,这里的问题略有不同。它的所有答案都不适用于我需要在这里做的事情。
-
到目前为止,我认为最好的选择是重写 ActiveModel::Serialization
serializable_hash方法。不适合所有人,只适合这些模型。
标签: ruby-on-rails activerecord