Mam wynik ActiveRecord operacji wyszukiwania:
tasks_records = TaskStoreStatus.find(
:all,
:select => "task_id, store_name, store_region",
:conditions => ["task_status = ? and store_id = ?", "f", store_id]
)
Teraz chcę przekonwertować te wyniki na tablicę skrótów, takich jak ta:
[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" }
dzięki czemu będę mógł iterować po tablicy i dodawać więcej elementów do skrótów, a później przekonwertować wynik na JSON
moją odpowiedź API. W jaki sposób mogę to zrobić?
arrays
activerecord
hash
Avinash Mb
źródło
źródło
Odpowiedzi:
as_json
Powinieneś użyć
as_json
metody, która konwertuje obiekty ActiveRecord na Ruby Hashes pomimo swojej nazwyserializable_hash
Możesz również przekonwertować dowolne obiekty ActiveRecord na Hash za pomocą
serializable_hash
i możesz przekonwertować dowolne wyniki ActiveRecord na tablicę za pomocąto_a
, więc na przykład:A jeśli chcesz mieć brzydkie rozwiązanie dla Railsów przed wersją 2.3
źródło
tasks_records = TaskStoreStatus.all.map(&:attributes)
..as_json
,&:serializable_hash
i&:attributes
? Czy ma to związek z pomocnikami ActiveRecord, czy bezpośrednio z wydajnością? z góry dzięki chłopaki! @Dom @Rigo @Fredrik EMoże?
Jeśli potrzebujesz klawiszy symboli:
źródło
Dla aktualnego ActiveRecord (4.2.4+) istnieje metoda
to_hash
naResult
obiekcie, która zwraca tablicę skrótów. Następnie możesz zmapować go i przekonwertować na symboliczne skróty:Więcej informacji można znaleźć w dokumentacji ActiveRecord :: Result .
źródło
to_hash
metody: spróbujto_ary
zamiast tego. O dziwo, to zadziałało dla mnie.