سؤال

أنا أستخدم رابط Ransack'ssort_link في مشروع Rails الخاص بي لعرض قائمة الرسوم الخاصة بي قسط نموذج.ومع ذلك، فإن "fee_amount" ليس سمة من سمات قسط نموذج، ولكن بدلا من ذلك طريقة فئة من فاتورة النموذج (الذي ينتمي إلى الدفع).ما لدي حاليا هو:

<%=sort_link @search, :bill_fee_amount, "رسوم الراحة" %>

الذي يجب أن يصل إلى فاتورة من التيار قسط واتصل بطريقة "fee_amount" على ذلك فاتورة, ، الذي يقوم ببعض العمليات الحسابية ويعيد تعويمًا.إنها هذه العوامات التي آمل أن أبحث عنها.

هل يمكن القيام بذلك، أم يمكنني فقط الفرز حسب سمات النموذج الذي أتعامل معه؟

هل كانت مفيدة؟

المحلول

Ransack هو خليفة MetaSearch، ووفقًا لوثائق MetaSearch، يمكنك إنشاء عمليات بحث مخصصة.إليك الرابط:

https://github.com/ernie/meta_search

أعتقد أن شيئًا كهذا سيعمل:

scope :sort_by_bill_fee_amount_asc, joins(:bill).select('sum("bills"."fee_amount") AS bill_fee_amount').order('bill_fee_amount ASC')
scope :sort_by_bill_fee_amount_desc, joins(:bill).select('sum("bills"."fee_amount") AS bill_fee_amount').order('bill_fee_amount DESC')

لم يكن السؤال واضحًا حول ماهية الحساب بالضبط، لذا افترضت أنه مجرد مجموع حقل يسمى fee_amount.لسوء الحظ، ربما يكون الأمر أسوأ بكثير من ذلك وأعتقد أنه يجب تضمين حساب SQL السيئ في ملف Payment نموذج.

النقطة الأساسية التي أعتقدها هي أن SQL يحتاج إلى تضمين العمود الذي تقوم بالفرز عليه، لذلك تحتاج إلى أن يقوم SQL بحسابه وتضمينه بالاسم الذي يريد Ransack البحث عنه.

أتمنى أن يساعد ذلك.

نصائح أخرى

لا يمكنك مع Ransack كما يأتي، ولكن تحقق من هذه المشكلة .يبدو أن بعض الأشخاص قد صنعوا بقع لهذه الوظيفة، لكنني لم أحاولهم.

href="https://github.com/ernie/ransack" rel="nofollow"> Ransack ، داخليا، يستخدم دائما النموذج كما هو محدد في قاعدة البيانات، ولم أستطعاجعلها تستخدم الجداول المؤقتة التي أنشأتها النطاقات.

pd: إعادة صياغة التعليق كإجابة كما أعود دائما إلى هذا السؤال: P

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top