从数据库仪表板获取简单信息

时间:2019-01-18 08:44:09

标签: ruby-on-rails activerecord ruby-on-rails-5

我正在使用Rails 5.2.2。我需要数据库记录中的简单信息。我在视图助手中创建了一些简单方法,例如:

  def set_simple_info
   "This user has #{@user.accounts.count} accounts<br> 
    These accounts has #{@user.accounts.relations.count} relations. <br>
    #{@user.accounts.orders.count} times ordered something".html_safe
  end

但这会创建许多SQL查询。我以为我可以创建一些变量并以Ruby方式进行管理,但是我不确定最有效的方法是什么。如何在不使用大量SQL查询的情况下从数据库中获取一些简单的信息?

1 个答案:

答案 0 :(得分:1)

将它们定义为辅助方法。但是最好的方法是将它们定义为相应类中的类方法。然后直接给他们打电话。

def user_relation_count(user)
  Relation.joins(account: :user).where(users: {id: user.id}).count
end

def user_orders_count(user)
  Order.joins(account: :user).where(users: {id: user.id}).count
end