如何訂購包含的元素我有一個模型關係,其中today
有許多tasks
在Rails 3中
我試圖檢索用戶的today
對象,包括tasks
和他們都渲染成JSON。所有這一切都很好,直到我決定我想在today
對象內訂購tasks
,因爲respond_with block
也用於呈現html頁面。有沒有辦法包括tasks
並訂購?
我想是這樣的:
class TodaysController < ApplicationController
respond_to :html, :json
def show
@today = Today.where(:user_id => current_user.id).joins(:tasks).includes(:tasks).order(:priority).first
respond_with @today, :include => :tasks
end
end
這正確檢索一切,但似乎並沒有在所有訂單的任務。
這是我曾經有過(這偉大的工作,但沒有排序):
class TodaysController < ApplicationController
respond_to :html, :json
def show
@today = current_user.today
respond_with @today, :include => :tasks
end
end
我知道我可以檢索數據,這樣事後對其進行排序:
@today = current_user.today
@today.tasks.sort!{|a,b| a.priority <=> b.priority }
這工作,並會通過我的測試,但我希望有一個ActiveRecord的方式來解決這個問題。
關於您的最後一行代碼。以下更清楚一點:'@ today.tasks.sort_by(&:priority)'。 – DNNX 2013-05-27 11:45:30