3
在我的應用程序中,我使用ActiveResource來管理從遠程API接收的數據。比方說,我的模型之一叫Account
,它有一個名爲settings
的字段,在API中記錄爲「自由形式的散列」,這意味着它可以存儲任何內容。使ActiveResource模型爲嵌套對象生成散列
樣本簡化JSON我會收到來自API:
{
"account": {
"title": "My Account",
"settings": {
"a_random_setting": true,
"another_random_setting": 42,
"a_subconfig_of_sorts": {
"is_deep": true
}
}
}
}
的ActiveResource非常親切地去一路下跌在JSON最深的嵌套對象,並把它們全部納入Ruby對象:
my_account.settings # => Account::Settings
my_account.settings.a_subconfig_of_sorts # => Account::Settings::ASubconfigOfSorts
這使得在settings
的內容中查找動態密鑰有點困難。實質上,我寧願將settings
定義爲常規散列,而不是爲我即時生成的定製嵌套對象。
my_account.settings.class # => Hash
my_account.settings[:a_subconfig_of_sorts] # => {:is_deep => true}
我該如何讓ActiveResource做到這一點?我的第一個猜測是通過使用schema
聲明,但它似乎只提供了標量類型。