2009-05-04 19 views
15

मैं उपयोगकर्ताओं को वस्तुओं को फ़िल्टर करने के लिए नियमों के एक सेट को परिभाषित करने का एक आसान तरीका ढूंढ रहा हूं।रूबी और नियम इंजन

ईजी। अगर उन्हें बुकिंग की तारीख < 200 9/04/30 और मूल्य> 100.00 "

अधिक या कम: मैं कस्टम डीएसएल के साथ रूबी नियम इंजन रखना चाहता हूं तो मुझे बुकिंग के बारे में सूचित करें।

क्या कोई पुस्तकालय इसकी पेशकश कर रहा है? रूलेबी में आया, लेकिन यह अभी तक कस्टम डीएसएल का समर्थन नहीं करता है।

ऐसा करने के लिए सबसे अच्छा तरीका क्या है?

उत्तर

2

Treetop पर एक नज़र डालें। आप अपने डीएसएल को एक पार्सिंग एक्सप्रेशन व्याकरण के रूप में परिभाषित कर सकते हैं और उसके बाद अपने पसंदीदा नियमों में अपने नियम बनाने के लिए इसे पार्स कर सकते हैं।

+1

हाय उत्तर के लिए धन्यवाद। ट्रिटॉप वास्तव में एक समाधान की तरह दिखता है। क्या आपके पास किसी भी सर्वोत्तम प्रथाओं की वेबसाइट के लिए एक लिंक हो सकता है? नेट पर अच्छी चीजें ढूंढना मुश्किल है। मैं निम्नलिखित दृष्टिकोण के बारे में सोच रहा था: - चलो उपयोगकर्ताओं को परिभाषित उनके नियम - Ruleby में इन फ़ीड - - इन नियमों के आधार पर रूबी कोड बनाएँ - नियम इंजन का उपयोग कर मेरी वस्तुओं को फ़िल्टर करता है इन का उपयोग कर पेड़ों पार्स वह आवाज बहुत अजीब है? – Matt

+0

दुर्भाग्य से मुझे ट्रिटॉप पर संसाधनों को खोजने में बहुत भाग्य नहीं मिला है। लेकिन आपका समाधान सही दृष्टिकोण की तरह लगता है। शुभकामनाएँ! –

1

मुझे नहीं पता कि इन नियमों का मूल्यांकन कैसे किया जाए और किस वस्तु पर मूल्यांकन किया जाना चाहिए, लेकिन यदि ये ActiveRecord मॉडल हैं तो Ambition जाने का तरीका होगा। यह आप रूबी में स्थिति लिखने करते हैं, कुछ की तरह:

User.select { |m| m.name == 'jon' && m.age == 21 } 

यह एसक्यूएल में परिवर्तित हो जाता है और आप सभी उपयोगकर्ताओं दिए गए मापदंड

+0

यह अच्छा लग रहा है लेकिन यह अब बनाए रखा नहीं है। – pisaruk

4

संतोषजनक मिल जाएगा wongi-engine मणि पर एक नज़र यह एक नया नियम है है इंजन रीट एल्गोरिदम पर आधारित है जो हाल ही में काफी ध्यान आकर्षित कर रहा है।

संबंधित मुद्दे