반응형
ActiveRecord 결과를 해시 배열로 변환하는 방법
찾기 작업의 ActiveRecord 결과가 있습니다.
tasks_records = TaskStoreStatus.find(
:all,
:select => "task_id, store_name, store_region",
:conditions => ["task_status = ? and store_id = ?", "f", store_id]
)
이제이 결과를 다음과 같은 해시 배열로 변환하고 싶습니다.
[0] -> { :task_d => 10, :store_name=> "Koramanagala", :store_region=> "India" }
[1] -> { :task_d => 10, :store_name=> "Koramanagala", :store_region=> "India" }
[2] -> { :task_d => 10, :store_name=> "Koramanagala", :store_region=> "India" }
배열을 반복하고 해시에 더 많은 요소를 추가하고 나중에 JSON
API 응답 을 위해 결과를로 변환 할 수 있습니다 . 어떻게 할 수 있습니까?
as_json
as_json
이름에도 불구하고 ActiveRecord 객체를 Ruby Hashes로 변환 하는 메소드를 사용해야합니다.
tasks_records = TaskStoreStatus.all
tasks_records = tasks_records.as_json
# You can now add new records and return the result as json by calling `to_json`
tasks_records << TaskStoreStatus.last.as_json
tasks_records << { :task_id => 10, :store_name => "Koramanagala", :store_region => "India" }
tasks_records.to_json
serializable_hash
또한를 사용하여 모든 ActiveRecord 객체를 해시로 serializable_hash
변환 할 수 있으며를 사용하여 모든 ActiveRecord 결과를 배열로 변환 할 수 있습니다 to_a
.
tasks_records = TaskStoreStatus.all
tasks_records.to_a.map(&:serializable_hash)
v2.3 이전의 Rails에 대한 추악한 솔루션을 원한다면
JSON.parse(tasks_records.to_json) # please don't do it
아마도?
result.map(&:attributes)
기호 키가 필요한 경우 :
result.map { |r| r.attributes.symbolize_keys }
현재 ActiveRecord (4.2.4+)의 경우 해시 배열을 반환하는 개체 to_hash
에 대한 메서드 가 Result
있습니다. 그런 다음 그 위에 매핑하고 기호화 된 해시로 변환 할 수 있습니다.
# Get an array of hashes representing the result (column => value):
result.to_hash
# => [{"id" => 1, "title" => "title_1", "body" => "body_1"},
{"id" => 2, "title" => "title_2", "body" => "body_2"},
...
]
result.to_hash.map(&:symbolize_keys)
# => [{:id => 1, :title => "title_1", :body => "body_1"},
{:id => 2, :title => "title_2", :body => "body_2"},
...
]
반응형
'Programing' 카테고리의 다른 글
Python 스크립트에서 PYTHONPATH를 어떻게 설정합니까? (0) | 2020.08.21 |
---|---|
Cordova 3.5.0 설치 오류-Android Target 19를 설치하십시오. (0) | 2020.08.21 |
matplotlib에서 위쪽 및 오른쪽 축을 어떻게 제거 할 수 있습니까? (0) | 2020.08.21 |
Java Date & Time API의 문제점은 무엇입니까? (0) | 2020.08.21 |
Elastic Search : 인덱싱 된 데이터를 보는 방법 (0) | 2020.08.21 |