Ruby on rails 如何在RubyonRails中进行连接

Ruby on rails 如何在RubyonRails中进行连接,ruby-on-rails,join,Ruby On Rails,Join,我有一个项目,我正在工作,我来做一些改变。 我们正在开发一个像Jira这样的应用程序,你可以在不同的板上执行任务。 我必须创建一个饼图来显示用户有多少任务。 我的旧版本代码是: = pie_chart Task.all.group(:assigned_id).count.map { |k,v| [User.find(k).full_name, v] }.to_h 它成功了。一位高级职员告诉我创建一个查询来获取名称和任务计数对。到现在为止,我有这样的东西,但它不起作用: = pie_chart

我有一个项目,我正在工作,我来做一些改变。 我们正在开发一个像Jira这样的应用程序,你可以在不同的板上执行任务。 我必须创建一个饼图来显示用户有多少任务。 我的旧版本代码是:

= pie_chart Task.all.group(:assigned_id).count.map { |k,v| [User.find(k).full_name, v] }.to_h
它成功了。一位高级职员告诉我创建一个查询来获取名称和任务计数对。到现在为止,我有这样的东西,但它不起作用:

= pie_chart current_account.organization.Tasks = Task.joins(:assigned_id).where(:full_name)
型号:

class Account < ApplicationRecord
  belongs_to :user
  belongs_to :role
  belongs_to :organization
  has_many :activities, dependent: :destroy  
  has_many :tasks, dependent: :destroy
  has_many :activities, dependent: :destroy
  has_many :comments, dependent: :destroy

class Organization < ApplicationRecord
  include PgSearch
  has_one_attached :logo
  has_many :accounts
  has_many :boards

class Task < ApplicationRecord

  has_one_attached :file
  belongs_to :list
  belongs_to :owner, class_name: "Account", foreign_key: "owner_id"
  belongs_to :assigned, class_name: "Account", foreign_key: "assigned_id"
  has_many :subtasks, dependent: :destroy
  has_many :comments, dependent: :destroy
  has_many :activities, dependent: :destroy

class User < ApplicationRecord
  include PgSearch

  has_many :accounts, dependent: :destroy
  has_one_attached :avatar
类帐户
您需要使用用户模型启动查询,并加入任务。然后,您需要选择完整名称和任务计数。像这样的方法应该会奏效:

data = User.joins(:tasks).select(:fullname, 'count(tasks.id) AS count')
然后,您可以映射这些元素以获得所需的数组:

data.map { |x| [x.email, x.count] }.to_h
# => { "A name" => 163, ...}
或在一行中:

= pie_chart User.joins(:tasks).select(:fullname, 'count(tasks.id) AS count').map { |x| [x.email, x.count] }.to_h

希望这有帮助-让我知道你进展如何,或者如果你有任何问题:)

你想显示当前用户分配任务的计数,对吗?您是否发现任何需要澄清的问题?那是什么?是的,我想要。。旧方法奏效了,它显示了分配给用户的任务,但一位年长者让我更改它,现在我很挣扎。如果你在挣扎,不要害怕向年长者寻求指导-如果他们擅长他们的工作,他们应该乐于给出一些建议:)否则,我认为这里的答案无论如何都会破解它。无法将“用户”加入名为“任务”的关联;也许你拼错了?这就是它向我显示的错误:/User和Task之间的关联是什么?你能用显示这个的模型代码更新你的问题吗@arnii69?如果它是一个标准的
关系,那么这可能会起作用,如果不是,可能需要一些修补:)当然:)问题是你的用户与任务没有关联(当你有反向关联设置时)。如果您更新用户模型以添加
has\u many:tasks,则与::assigned
相反(它们与accounts表/user:has\u many:accounts/Account:has\u many:tasksAh连接-在这种情况下,您需要通过::accounts添加
has\u many:tasks。相信这应该会破解@arnii69:)