سعاد نشر 29 فبراير 2016 أرسل تقرير نشر 29 فبراير 2016 على إطار العمل Rails لدي Models هما Article وَ Comment بعلاقة one-to-many. الواجهة view: <% @articles.each do |article| %> <% article.comments.each do |comment| %> some content <% end %> <% end %> جلب articles عن طريقة المتغير articles@ : @articles = Article.order('created_at asc').last(4) أريد عمل فلتر للتعليقات داخل الواجهة: <% @articles.each do |article| %> <% article.comments.order('created_at asc').last(4).each do |comment| %> some content <% end %> <% end %> لكن لا أستطيع عمل (4)order('created_at asc').last داخل الواجهة، فكيف أتمكن من فعل ذلك داخل Controller؟ اقتباس
0 E.Nourddine نشر 1 مارس 2016 أرسل تقرير نشر 1 مارس 2016 داخل model عليك بإضافة العلاقة has_many والتي تربط جدول article بجدول comments: Class Article < ActiveRecord::Base has_many :comments, -> { order 'created_at' } do def recent limit(4) end end end لتتمكن من استعمال articles بالطريقة التالية: @articles.each do |article| article.comments.recent.each do |comment| stuff end end هذا مثال آخر، يتعلق بصورة'Picture'والتعليقات'comments' الخاصة بها: Class Picture < ActiveRecord::Base has_many :comments, :order => 'id DESC' do def recent limit(10) end end end اقتباس
السؤال
سعاد
على إطار العمل Rails لدي Models هما Article وَ Comment بعلاقة one-to-many.
الواجهة view:
جلب articles عن طريقة المتغير articles@ :
@articles = Article.order('created_at asc').last(4)
أريد عمل فلتر للتعليقات داخل الواجهة:
لكن لا أستطيع عمل (4)order('created_at asc').last داخل الواجهة، فكيف أتمكن من فعل ذلك داخل Controller؟
1 جواب على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.