пользователи, которые получили благодарности, активную запись, рельсы - PullRequest
0 голосов
/ 02 марта 2020

я создал небольшой модуль благодарности, в этом модуле current_user отправляет спасибо другим пользователям, есть ли запрос, где я могу показать только сумму благодарности, которую имеет каждый пользователь? Основная идея состоит в том, чтобы показать список с благодарностью, которую получил каждый пользователь, и число этих

controller / grattitude_controller.rb:

 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

Ответы [ 2 ]

0 голосов
/ 03 марта 2020

I считаю, , что вам нужно в моделях:

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 голосов
/ 03 марта 2020

Вы можете использовать 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}

Ключ является идентификатором пользователя, а значение является числом благодарностей пользователя.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...