我正在使用来自第三方API的JSON数据,对该数据执行一些处理,然后将模型作为JSON发送到客户端。传入数据的密钥没有很好地命名。其中一些是首字母缩略词,一些似乎是随机字符。例如:重命名ActiveResource属性
{
aikd: "some value"
lrdf: 1 // I guess this is the ID
}
我创建一个轨道的ActiveResource模型来包装这个资源,但不希望通过model.lrdf访问这些属性,它不是明显的真的是什么LRDF!相反,我想以某种方式将这些属性别名为另一个更好命名的属性。有些东西让我可以说model.id = 1并让lrdf自动设置为1或放入model.id并让它自动返回1.另外,当我调用model.to_json将模型发送给客户端时,我不想要我的JavaScript必须理解这些奇怪的命名约定。
我试图
alias id lrdf
但是这给了我一个错误说LRDF是不存在的方法。
另一种选择是只包住属性:
def id
lrdf
end
这个工作,但是当我打电话model.to_json,我再次看到LRDF的钥匙。
有没有人做过这样的事情?你有什么建议?
我认为这可以用于保存,但在我的情况下,数据是只读的,所以我只关心在读取时转换它。 – Brad 2011-04-13 21:08:53
我最终做了类似的地方,我重写了ActiveResource :: Base的加载方法。 – Brad 2011-05-23 15:57:18