我正在使用來自第三方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