首页 > 解决方案 > 如何从 sql 查询返回的 ruby​​ 对象中检索列数据?

问题描述

 sql = "Select * from clients where id=1"
        records_array = ActiveRecord::Base.connection.execute(sql)
       puts(records_array.id)

即使查询应包含具有 id 的对象,我也会收到错误消息

NoMethodError(未定义的方法 `id' for #):

标签: ruby-on-railsruby

解决方案


您执行.id哈希的方法(返回 ActiveRecord::Base.connection.execute(sql)),哈希实例没有此方法。此方法将为您返回一个 sql 结果,您可以访问执行的客户端属性:

records_array.first

这将为您返回找到的客户端的属性数组:

[1, 'Client name', 'Client birthday']

如果您使用,我强烈建议您使用.find类中的方法ClientActiveRecord


推荐阅读