का उपयोग कर कच्ची क्वेरी क्या वर्तमान में Rails 4.0.0.beta1 में ActiveRecord का उपयोग करके कच्चे SQL चयन क्वेरी करने का कोई तरीका है? मैं ActiveRecord :: Base.execute अब मौजूद नहीं देखता हूं। इस बारे में जाने का सही तरीका क्या है?रेल 4, ActiveRecord
33
A
उत्तर
49
यहाँ इस का चयन करें उदाहरण कोशिश ..:
query = "select ...."
results = ActiveRecord::Base.connection.execute(query)
10
रेल 4 (शायद पिछले संस्करणों के रूप में अच्छी तरह से) में, यदि आप गति के लिए एक कस्टम क्वेरी के साथ जा रहे हैं, तो आप एक :skip_logging
तर्क को जोड़ सकते हैं लॉग के लिए लिख से बचने:
query = "SELECT ..."
results = MyModel.connection.execute(query, :skip_logging)
(नोट: मैं सही ढंग से स्रोतों पढ़ रहा हूँ, तो यह PostgreSQL में सच नहीं हो सकता है।)
26
बस मेरे दस पैसे के एक कच्चे जोड़ने के लिए, Model.connection.execute का उपयोग कर क्वेरी एक ActiveRecord मॉडल नहीं लौटाएगी - यह एक कच्चा डेटा सेट लौटाएगी।
निम्नलिखित ActiveRecord मॉडल वापस आ जाएगी:
MyModel.find_by_sql(query)
संपादित करें: है कि आप एक का चयन चला रहे हैं निश्चित रूप से यह सोचते हैं।
संबंधित मुद्दे
- 1. रेल/activerecord
- 2. बनाना रेल ActiveRecord मॉडल
- 3. रेल/ActiveRecord mysql बीआईटी
- 4. रेल ActiveRecord - मॉडल
- 5. रेल - ActiveRecord - फ़ील्ड मान
- 6. रेल पहले_or_create ActiveRecord विधि
- 7. रेल ActiveRecord सांत्वना
- 8. रेल 3 ActiveRecord स्कोप
- 9. रेल में सत्र 4
- 10. रेल 4 हैस_मनी: चुनिंदा
- 11. रेल 4: fields_for fields_for
- 12. रेल 4। ऑर्डर() जॉइन
- 13. रेल 4: कोकून जेम
- 14. रेल 4 के बराबर रेल 3 'मॉडल.ल'
- 15. रेल 4 माइग्रेशन
- 16. रेल ActiveRecord :: प्लगइन में पर्यवेक्षक
- 17. रेल 3 ActiveRecord: यह संघ
- 18. रेल: ActiveRecord एसोसिएशन विधि ओवरराइडिंग
- 19. रेल 5: ActiveRecord या क्वेरी
- 20. रेल 3 स्कॉप्ड ActiveRecord :: ReadOnlyRecord
- 21. रेल में सक्रिय कार्य ActiveRecord
- 22. रेल 3 ActiveRecord सार वस्तुओं
- 23. रेल 4 - रेल
- 24. रेल 4: जमे हुए हैश
- 25. रेल 4: सीरियलकृत ऐरे
- 26. रेल 4
- 27. रेल 4
- 28. रेल 4
- 29. रेल 4 है_and_belongs_to_many कथन
- 30. रेल में विदेशी कुंजी 4
स्पष्ट रूप से इसे नियंत्रक से कॉल करते समय इसे बहिष्कृत किया जाता है। 'अस्वीकरण चेतावनी: # कनेक्शन को कक्षा के माध्यम से एक्सेस करने के पक्ष में बहिष्कृत किया गया है। – Vortico
ऐसा इसलिए है क्योंकि आपको सीधे नियंत्रक – ant
में डेटाबेस तक पहुंचने के बजाय डेटाबेस के साथ डेटाबेस से बातचीत करने देना चाहिए @ क्या मुझे लेनदेन खोलना चाहिए या कनेक्शन खोलना चाहिए कस्टम एसक्यूएल क्वेरी निष्पादन के लिए पर्याप्त हो? [पास्ता उदाहरण] (http://pastie.org/10111824) – gaussblurinc