edytuj 2
Jeśli się na to natkniesz, sprawdź obie odpowiedzi, ponieważ teraz użyłbym do tego skubania
Mam dość duży niestandardowy zestaw danych, który chciałbym powrócić, aby wyświetlić go jako json. Jedna część to:
l=Location.find(row.id)
tmp[row.id]=l
ale chciałbym zrobić coś takiego:
l=Location.find(row.id).select("name, website, city")
tmp[row.id]=l
ale to nie wydaje się działać. Jak mam to zrobić?
dzięki
edit 1
Alternatywnie, czy istnieje sposób, w jaki mogę przekazać tablicę tylko atrybutów, które chcę uwzględnić?
:limit
powinien to zrobić, lub:first
lub:last
cokolwiek, w zależności od tego, czego chcesz. W dokumencie referencyjnym, do którego utworzyłem łącze, dowiesz się, jak to wszystko zrobić.oskubać (nazwa_kolumny)
Ta metoda jest przeznaczona do wybierania przez jedną kolumnę jako bezpośrednie zapytanie SQL. Zwraca tablicę z wartościami o określonej nazwie kolumny. Wartości mają ten sam typ danych co kolumna.
Przykłady:
Person.pluck(:id) # SELECT people.id FROM people Person.uniq.pluck(:role) # SELECT DISTINCT role FROM people Person.where(:confirmed => true).limit(5).pluck(:id)
zobacz http://api.rubyonrails.org/classes/ActiveRecord/Calculations.html#method-i-pluck
Wprowadzono szyny od 3.2 i akceptuje tylko jedną kolumnę. W szynach 4 akceptuje wiele kolumn
źródło
Location.select([:name, :website, :city])
Moja odpowiedź przychodzi dość późno, ponieważ jestem całkiem nowym programistą. Oto, co możesz zrobić:
Location.select(:name, :website, :city).find(row.id)
Przy okazji, to jest Rails 4
źródło