2015-06-23 5 views
6

क्या रेल फॉर्म हेल्पर्स के साथ Postgres range types को एकीकृत करने के कोई मानक तरीके हैं? मुझे मूल रूप से एक न्यूनतम और अधिकतम फ़ील्ड की आवश्यकता होती है जो बचत पर एक सीमा में परिवर्तित हो जाती है। कोई विचार? range_endrange_begin,:पोस्टग्रेज रेंज फ़ील्ड + रेल फॉर्म

उत्तर

2

पहले तो मुझे कुछ इस तरह के बारे में सोच रहा था:

class Model 
    delegate :begin, :end, to: :range, prefix: true, allow_nil: true # Replace :range with your field name 
end 

तरीकों प्राप्त करने के लिए। मैंने प्रलेखन की जांच की और इन तरीकों को केवल पढ़ा जाता है।

class Model 
    delegate :begin, :end, to: :range, prefix: true, allow_nil: true 

    def range_begin=(value) 
    self.range = Range.new(value, (range_end || value)) 
    end 

    def range_end=(value) 
    self.range = Range.new((range_begin || value), value) 
    end 
end 

आप setters में || का उपयोग नहीं करते हैं, तो आप ArgumentError: bad value for range खाली रिकॉर्ड पर मिलती है:

तो तुम भी setters की जरूरत है।

अपने विचारों में आप फ़ील्ड range_begin और range_end के लिए सामान्य इनपुट का उपयोग कर सकते हैं।

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