Sunday, 15 June 2014

ruby - Update time attribute in Rails, SUPER easy, i'm being dense -


मेरे पास निम्न RentalRequest वस्तु है:

  # & lt ; RentalRequest आईडी: 3, पिकअप_स्टार्ट: "2015-03-16 21:00:00", पिकअप_ेंड: "2015-03-16 23:00:00" & gt;  

मैं pickup_start और pickup_end को 2015-03-17 पर अपडेट करना चाहते हैं। जब मैं चलाता हूं:

  RentalRequest.find (3) .update_attribute (pickup_end: "2015-03-17 23:00:00") तर्क त्रुटि: तर्कों की गलत संख्या (2 के लिए 1) < / कोड>  

निश्चित रूप से मुझे क्या अन्य तर्क प्रदान करने की आवश्यकता है I

यदि यह मदद करता है, तो यहां विशेषता का प्रकार और आउटपुट है

  RentalRequest.find (3)। Pickup_end = & gt; सोम, 16 मार्च 2015 23:00:00 यूटीसी +00: 00 RentalRequest.find (3) .pickup_end.class = & gt; ActiveSupport :: TimeWithZone  

देखो, यह कैसे नाम, मान की अपेक्षा कर रहा है तर्क के रूप में?

आप नाम: मान से गुजर रहे हैं जो एक हैश है, एक हैश का एक तर्क इसलिए आपको गलत संख्या के तर्क के बारे में त्रुटि मिल रही है, विधि 2 की उम्मीद कर रही है, लेकिन आप केवल 1 प्रदान कर रहे हैं।

आप या तो कॉल करने के लिए अपना कोड बदल सकते हैं: update_attribute (: pickup_end , "2015-03-आदि।") या इसके बजाय आप इसके बजाय update_attributes विधि का उपयोग कर सकते हैं, जो एक हैश लेता है मैं बाद की सिफारिश करता था, क्योंकि फिर आप एक ही एसक्यूएल स्टेटमेंट में और एक ही डीबी लेनदेन में एक साथ दो विशेषताओं को अपडेट कर सकते हैं:

  update_attributes pickup_end: "2015 ... आदि" , पिकअप_स्टार्ट: "2015 ... आदि"  

No comments:

Post a Comment