Skip to main content
 首页 » 编程设计

ruby-on-rails之从 Rails 原始 SQL 查询中获取数据

2025年05月04日108Renyi-Fan

我正在尝试使用数据库查询的结果来测试另一个查询的结果。

我有以下原始 sql 查询

sail_query = "select s.id from sailings AS s 
  INNER JOIN events on events.sailing_id = s.id 
  INNER JOIN event_registers on events.id = event_registers.event_id 
  where event_registers.event_id = #{event_register.event_id} 
  and event_registers.user_id = #{event_register.user_id}" 
@sail_result = ActiveRecord::Base.connection.execute(sail_query) 

这产生

[{"id"=>1, 0=>1}] 

这是我所期望的。我需要“id”来对照另一个 id 检查它,但我不知道必须“得到”它。我本来希望在 View 中调用 @sail_result.id,但它返回了

[{"id"=>1, 0=>1}]:Array 的未定义方法 `id'

关于我如何做到这一点有什么想法吗?我认为是 2 分钟的问题已经升级为数小时的无结果研究。

谢谢

请您参考如下方法:

由于它返回一个数组,您可以执行 @sail_result[0].id 来获取该值。