मैंने धन्यवाद का एक छोटा मॉड्यूल बनाया है, इस मॉड्यूल में, current_user अन्य उपयोगकर्ताओं को धन्यवाद भेजता है, क्या कोई प्रश्न है जहां मैं केवल प्रत्येक उपयोगकर्ता के पास धन्यवाद की मात्रा दिखा सकता हूं? मुख्य विचार यह है कि प्रत्येक उपयोगकर्ता को प्राप्त हुए धन्यवाद और इनकी संख्या के साथ एक सूची दिखाना है

नियंत्रक/कृतज्ञता_कंट्रोलर.आरबी:

 def index
    @gratitudes = Gratitude.all
    @gratitude_user = "query"

    respond_to do |format|
      format.html # index.html.erb
      format.xml  { render :xml => @gratitudes }
    end
  end

यह मॉडल है

class Gratitude < ActiveRecord::Base
  belongs_to :user
  belongs_to :send_to_user, :class_name => "User", :foreign_key => "send_to_user_id"
end

class User < ActiveRecord::Base
  has_may :gratitudes
end
0
Nicolás 2 मार्च 2020, 22:24

2 जवाब

मेरा विश्वास है कि आप मॉडलों में निम्नलिखित चाहते हैं:

class Gratitude < ActiveRecord::Base
  belongs_to :sender, inverse_of: :sent_gratitudes, foreign_key: "user_id", class_name: "User"
  belongs_to :recipient, inverse_of: :received_gratitudes, foreign_key: "send_to_user_id", class_name: "User"
end
class User < ActiveRecord::Base
  has_many :sent_gratitudes, inverse_of: :sender, foreign_key: "user_id", class_name: "Gratitude"
  has_many :received_gratitudes, inverse_of: :recipient, foreign_key: "send_to_user_id", class_name: "Gratitude"
end

आप उसके बाद तदनुसार वस्तुओं को निकालने/पूछने में सक्षम होना चाहिए।

0
Biwek 3 मार्च 2020, 17:40

आप group का उपयोग कर सकते हैं

User.joins(:gratitudes).group(:id).size और आपके पास कुछ ऐसा होगा

{1=>1, 25=>1, 26=>1, 27=>1, 28=>5, 29=>1, 30=>1, 31=>1, 32=>1, 33=>1}

कुंजी उपयोगकर्ता की आईडी है और मूल्य उपयोगकर्ता की कृतज्ञता की संख्या है।

0
Thuy Nguyen 3 मार्च 2020, 04:22