ruby-on-rails - 了解事件记录查询

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

我需要为我正在处理的项目做一些复杂的子查询。我无法弄清楚如何在普通事件记录中做到这一点。我尝试了几件事,最后选择了使用

的通用 SQL 查询
ActiveRecord::Base.connection.exec_query(
  "
  SELECT gid as id, (dp).path, (dp).geom, ST_AsText((dp).geom),  ST_X((dp).geom) as longitude, ST_Y((dp).geom) as latitude
  FROM (
  SELECT gid, ST_DumpPoints(ST_AsText(ST_Transform(geom, 4326))) as dp
  FROM apples
  WHERE gid in (#{@object.id})
  ) AS GEO;
  "
)

在这里,我从一个子查询中进行选择,并使用普通的 postgresql 将几何图形转换为点。如果我要在 ActiveRecord 查询中执行此操作,我该怎么做?这种类型的查询在 ActiveRecord 中甚至可能吗?

最佳答案

ActiveRecord 不会为您提供任何花哨的东西。您可以执行简单的操作,但当需要复杂的查询时,您只需像以前一样使用纯 SQL。

可以查看Arel这可能会给你更多的灵 active 。但我认为,最终还是不值得 - 它不会像本地查询那样有效。

用 ORM 做简单的事情。使用纯 SQL 执行复杂的操作。

关于ruby-on-rails - 了解事件记录查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52324769/

相关文章:

Ruby 将整数转换为二进制到设置位的整数数组

postgresql - 有什么方法可以检查一个字段是否能够在 postgres 中转换为时间戳

SQL - 检查列表中的值是否在表中不存在并相应地返回 bool 值

ruby-on-rails - 在 Heroku 上部署 Sidekiq Pro

sql - Rails 中同一列的 OR 条件在哪里

ruby-on-rails - rails 3.1 : Querying Postgres for records within a time range

ruby-on-rails - 在 Rails 5.2 中分离 secret_key_base?

ruby - 更新哈希中的值

sql - 如何将线串分割成单独的线段?

ruby-on-rails - 清除 RoR4 中的附加 strong_parameters