【发布时间】:2023-03-13 22:37:01
【问题描述】:
我知道这两条语句执行相同的 SQL:
使用select
User.select(:email)
# SELECT `users`.`email` FROM `users`
并使用pluck
User.all.pluck(:email)
# SELECT `users`.`email` FROM `users`
现在我需要获取从每个方法派生的 SQL 语句。鉴于select 方法返回ActiveRecord::Relation,我可以调用to_sql 方法。但是,鉴于结果是一个数组,我无法弄清楚如何获取从对 ActiveRecord::Relation 对象的 pluck 操作派生的 SQL 语句。
请注意,这是对问题的简化。抽取的属性数量可以任意多。
任何帮助将不胜感激。
【问题讨论】:
-
你想做什么?
pluck使用与select相同的 SQL 查询,但它使用cast_values返回数组而不是ActiveRecord::Relation。 -
我正在根据用户输入构建一个查询,我想提供有关实际正在执行的查询的反馈
标签: ruby-on-rails activerecord rails-activerecord