【问题标题】:How to change Rails Admin query?如何更改 Rails 管理员查询?
【发布时间】:2018-07-03 11:32:32
【问题描述】:

我们有一个大表,需要在索引页面上调整一些查询。

我浏览了 Wiki 和 SO,但没有找到任何答案。

如何更改查询?

【问题讨论】:

  • 你的问题到底是什么?
  • “需要调整一些查询” - 你能解释一下吗?
  • @DeepakMahakale - 更改查询的代码到底应该放在哪里?
  • @JagdeepSingh - 一个查询是SELECT COUNT(*)。我想把它改成SELECT reltuples FROM pg_class。另一个变化是,当具有一定权限的用户看到索引页面时,它不会呈现记录的总数。

标签: ruby-on-rails rails-admin ruby-on-rails-4.2


【解决方案1】:

如果您询问如何执行自定义 SQL,您可以使用 find_by_sql 执行此操作,如下所示:

Post.find_by_sql "SELECT p.title, c.author FROM posts p, comments c WHERE p.id = c.post_id"

更多信息在这里:https://apidock.com/rails/ActiveRecord/Base/find_by_sql/class

【讨论】:

  • 我知道怎么做find_by_sql,但我正在寻找一种方法来更新 Rails Admin 以使用它。
【解决方案2】:

添加分页并确保您正在进行预加载以防止出现 n+1 问题。

 @users = User.where.not(customer_id: nil).where(deleted_date: nil).
order('users.name').eager_load(:role).eager_load(:customer)
.paginate(:page => params[:page], :per_page => 10)

包含角色和客户的用户查询示例。一定要在模型中添加关系。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-08
    • 2015-06-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多