Jeśli myślisz, jak działa Rails, połączenia to tylko metoda odnosząca się do modelu Call. Możesz to zrobić na kilka sposobów. Jedną z nich jest ustawienie opcji zamówienia w powiązaniu. Jednym z nich jest zmiana domyślnego zakresu modelu połączeń na całym świecie, kolejny tworzy nową metodę w modelu klient, który zwraca połączeń
Metoda 1 (przydatne, jeśli chcesz zrobić coś z połączeniami przed kodowaniem.):
class Customer < ActiveRecord::Base
has_many :calls, :order => "created_at DESC"
end
UPDATE
Dla szyn 4 i powyżej użytku:
class Customer < ActiveRecord::Base
has_many :calls, -> { order('created_at DESC') }
end
Metoda 2:
class Call < ActiveRecord::Base
default_scope order("created_at DESC")
end
Metoda 3:
class Call < ActiveRecord::Base
scope :recent, order("created_at DESC")
end
class Customer < ActiveRecord::Base
def recent_calls
calls.recent
end
end
Następnie można użyć:
format.json { render :json => @customer, :methods => :recent_calls}
Chyba można zdefiniować domyślny rodzaj podczas definiowania relacji. http://api.rubyonrails.org/classes/ActiveRecord/Associations/ClassMethods.html#method-i-has_many – rubish
Przepraszamy za bycie gramatykiem nazistowskim, ale render jest terminem graficznym. Poprawna terminologia jest kodowana. – tjameson
@tjameson Wywołują metodę render (: json), myślę, że bezpiecznie jest odnosić się do niej jako renderowania JSON w tym kontekście. – Gazler