Ответ 1
Если вы думаете, как работает Rails, вызовы - это всего лишь метод, который относится к модели Call. Есть несколько способов сделать это. Один - установить опцию заказа в ассоциации. Один из них заключается в том, чтобы изменить масштаб по умолчанию для модели вызова глобально, другой создает новый метод в модели Customer, который возвращает вызовы (полезно, если вы хотите что-либо сделать с вызовами перед кодированием.)
Способ 1:
class Customer < ActiveRecord::Base
has_many :calls, :order => "created_at DESC"
end
UPDATE
Для рельсов 4 и выше используйте:
class Customer < ActiveRecord::Base
has_many :calls, -> { order('created_at DESC') }
end
Способ 2:
class Call < ActiveRecord::Base
default_scope order("created_at DESC")
end
Способ 3:
class Call < ActiveRecord::Base
scope :recent, order("created_at DESC")
end
class Customer < ActiveRecord::Base
def recent_calls
calls.recent
end
end
Затем вы можете использовать:
format.json { render :json => @customer, :methods => :recent_calls}