내 애플리케이션에서 ActiveResource를 사용하여 원격 API에서 수신 한 데이터를 관리하고 있습니다. 예를 들어, 내 모델 중 하나는 Account
이며, settings
이라는 필드가 있습니다.이 필드는 API에 "자유 형식 해시"로 기록되어 있습니다. 즉, 무엇이든 저장할 수 있습니다.ActiveResource 모델에서 중첩 된 객체에 대한 해시 생성
샘플 단순화 된 JSON :
{
"account": {
"title": "My Account",
"settings": {
"a_random_setting": true,
"another_random_setting": 42,
"a_subconfig_of_sorts": {
"is_deep": true
}
}
}
}
ActiveResource 매우 친절하게 모든 방법이 JSON에서 가장 깊은 중첩 된 개체를 아래로 가서 루비로 모두 전환은 객체 :
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
선언을 사용했지만 스칼라 유형 만 제공합니다.