sql = "Select * from clients where id=1"
records_array = ActiveRecord::Base.connection.execute(sql)
puts(records_array.id)
即使查询中应包含具有ID的对象,我也会收到错误消息
NoMethodError(#的未定义方法'id'):
答案 0 :(得分:0)
您对哈希执行方法.id
(返回ActiveRecord::Base.connection.execute(sql)
),哈希实例没有此方法。
此方法将为您返回一个sql结果,您可以访问执行以下内容的客户端属性:
records_array.first
这将为您返回找到的客户端的属性数组:
[1, 'Client name', 'Client birthday']
如果您使用.find
,我强烈建议您使用类Client
中的ActiveRecord
方法
答案 1 :(得分:0)
始终尝试猜测哪种方法可以为您提供帮助。当您编写record_arrays.methods
时,它会返回可以帮助您的可用方法的列表。例如,records_array.column_values(0)
将返回第一列中的所有值,在这种情况下,可能是所有客户端ID的列表,另一种方法是records_array.values
。您可以检查哪种方法可以帮助您。