4 রেল হিসাবে, আপনি এটি করবেন:
class Article < ActiveRecord::Base
has_many :comments, -> { order(created_at: :desc) }
end
class Comment < ActiveRecord::Base
belongs_to :article
end
একটি জন্য has_many :through
সম্পর্ক যুক্তি অর্ডার গুরুত্বপূর্ণ (এটা দ্বিতীয় হতে হয়েছে):
class Article
has_many :comments, -> { order('postables.sort' :desc) },
:through => :postable
end
আপনি সবসময় একই আদেশ এক্সেস মন্তব্য করতে চাইবেন থাকলে কোনো প্রসঙ্গ ব্যাপার আপনার কাছে এর মাধ্যমে এই কাজ করতে পারে default_scope
মধ্যে Comment
মত:
class Comment < ActiveRecord::Base
belongs_to :article
default_scope { order(created_at: :desc) }
end
তবে এই প্রশ্নটিতে আলোচিত কারণগুলির জন্য এটি সমস্যাযুক্ত হতে পারে ।
রেল 4 এর আগে আপনি order
সম্পর্কের কী হিসাবে নির্দিষ্ট করতে পারেন , যেমন:
class Article < ActiveRecord::Base
has_many :comments, :order => 'created_at DESC'
end
জিম উল্লিখিত হিসাবে আপনি sort_by
ফলাফল আনার পরে আপনি ব্যবহার করতে পারেন যদিও আকারের কোনও ফলাফলের সেটগুলিতে এটি এসকিউএল / অ্যাক্টিভেকর্ডের মাধ্যমে অর্ডার দেওয়ার চেয়ে ধীরে ধীরে ধীরে ধীরে হবে (এবং আরও অনেক বেশি মেমরি ব্যবহার করবে)।
আপনি যদি এমন কিছু করছেন যেখানে কোনও কারণে ডিফল্ট অর্ডার যুক্ত করা জটিল হয় বা আপনি কিছু ক্ষেত্রে আপনার ডিফল্টটিকে ওভাররাইড করতে চান তবে আনার ক্রিয়ায় এটি নির্দিষ্ট করা তুচ্ছ ial
sorted = article.comments.order('created_at').all