में कैसे ऑर्डर करने के लिए शामिल तत्वों जहां today
कई tasks
रेल 3
मैं एक उपयोगकर्ता के today
वस्तु प्राप्त करने का प्रयास कर रहा हूँ है मैं एक मॉडल रिश्ता है, tasks
शामिल हैं और उन सब को Json करने के लिए प्रस्तुत करना। यह सब तब तक बढ़िया था जब तक मैंने फैसला नहीं किया कि मैं tasks
को today
ऑब्जेक्ट के भीतर ऑर्डर करना चाहता था क्योंकि 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 तरीके की उम्मीद कर रहा था। रेल में के रूप में नीचे टिप्पणी में उल्लेख किया है, 4, यह अब है:
कोड की अपनी अंतिम पंक्ति के बारे में। निम्नलिखित थोड़ा स्पष्ट है: '@ आज.tasks.sort_by (&: प्राथमिकता)'। – DNNX