Tuesday 15 April 2014

Rails: Optimizing queries to database for has_many relationship -


मेरे उपयोगकर्ता मॉडल में:

  वर्ग उपयोगकर्ता & lt; ActiveRecord :: बेस है has_many: received_messages: foreign_key = & gt; मेरे संदेश नियंत्रक की अनुक्रमणिका कार्रवाई में, मेरे पास:  @messages = current_user.received_messages   

मेरे विचार में (recipient_id end

वास्तविक कोड का छोटा संस्करण):

  & lt;% @ messages.each do | संदेश | & Gt%; & Lt;% = message.sender.full_name% & gt; & lt; br & gt; & Lt;% = truncate (message.body ,: लंबाई = & gt; 50)% & gt; & LT;% अंत% & gt;   

मुद्दा यह है कि प्रत्येक संदेश के लिए, यह संदेश प्रेषक के लिए डेटाबेस से पूछताछ करेगा। इसलिए यदि 20 संदेश हैं, तो यह 20 अनुरोधों को डेटाबेस भेज देगा। मैं उससे कैसे बचूंगा? मैं उत्सुक लोडिंग और के बारे में पढ़ रहा हूं: शामिल है, लेकिन मुझे नहीं पता कि इसे इस उदाहरण में कैसे लागू किया जाए।

ध्यान दें कि प्रेषक उपयोगकर्ता वर्ग का सिर्फ एक और उदाहरण है ।

समाधान, विधि के साथ शामिल है :

  @messages = current_user.received_messages.includes (: प्रेषक)    

No comments:

Post a Comment