У меня есть хеш, который выглядит следующим образом:
"properties": [
{
"accommodates": 14,
"adr": 1336.69,
"host_id": 23724674,
"property_id": 4576625,
"bathrooms": 4.5,
"bedrooms": 5,
"business_ready": false,
"cancellation": "strict",
"check_in": "Anytime after 4PM",
"check_out": "11AM",
"cleaning_fee": 200,
"days_a_ltm": 138,
"days_b_ltm": 24,
"days_r_ltm": 203,
"extra_person_charge": 50,
"img_count": 26,
"img_cover": "",
"instant_book": true,
"last_calendar_update": "2018-02-16",
"latitude": 39.7610167973274,
"listed_dt": "2014-10-24",
"listing_url": "rooms/4576625",
"location": {
"city": "Denver",
"country": "United States",
"msa": "Denver-Aurora-Lakewood, CO Metro Area",
"neighborhood": [
"Highland"
],
"state": "Colorado",
"zipcode": "80211"
},
"longitude": -105.008507384098,
"minimum_stay": 2,
"num_res_ltm": 64,
"occ": 0.595308,
"price_monthly": 17000,
"price_nightly": 725,
"price_weekly": 5600,
"property_type": "Entire house",
"rating_overall": 9.9,
"response_rate": 100,
"response_time": 229,
"revenue": 271348,
"reviews": 124,
"room_type": "Entire home/apt",
"scraped_dt": "2018-02-25",
"security_deposit": 1000,
"superhost": true,
"title": "Huge Home in the Heart of Lohi! Groups Welcome!"
},
{
"accommodates": 15,
"adr": 781.576,
"host_id": 14178014,
"property_id": 9944575,
"bathrooms": 5,
"bedrooms": 6,
"business_ready": true,
"cancellation": "strict",
"check_in": "Anytime after 3PM",
"check_out": "12PM (noon)",
"cleaning_fee": 200,
"days_a_ltm": 46,
"days_b_ltm": 7,
"days_r_ltm": 312,
"extra_person_charge": 15,
"img_count": 49,
"img_cover": "",
"instant_book": true,
"last_calendar_update": "2018-02-15",
"latitude": 39.7349220878173,
"listed_dt": "2015-12-11",
"listing_url": "rooms/9944575",
"location": {
"city": "Denver",
"country": "United States",
"msa": "Denver-Aurora-Lakewood, CO Metro Area",
"neighborhood": [
"Capitol Hill"
],
"state": "Colorado",
"zipcode": "80218"
}
]
В хэше массива свойств есть несколько ключей, которые я хочу изменить, и я хотел бы использовать что-то простое, например transform_keys или deep_transform_keys;однако эти методы заменяют все ключи, для которых потребуется создать новую карту со всеми приведенными ниже ключами, чтобы изменить два или 3. В частности, я собираюсь переименовать adr, yield и occ.Кто-нибудь знает, есть ли способ выполнить метод transform_key или deep_transform_key только для некоторых ключей?Что-то вроде:
hash_name.deep_transform_keys{|k| {:adr=>'adr_ltm', :revenue => 'revenue_ltm'}[k] if k == 'adr'||'revenue'}