ruby-on-rails - 如何从 sql 查询返回的 ruby 对象中检索列数据?
问题描述
sql = "Select * from clients where id=1"
records_array = ActiveRecord::Base.connection.execute(sql)
puts(records_array.id)
即使查询应包含具有 id 的对象,我也会收到错误消息
NoMethodError(未定义的方法 `id' for #):
解决方案
您执行.id
哈希的方法(返回 ActiveRecord::Base.connection.execute(sql)
),哈希实例没有此方法。此方法将为您返回一个 sql 结果,您可以访问执行的客户端属性:
records_array.first
这将为您返回找到的客户端的属性数组:
[1, 'Client name', 'Client birthday']
如果您使用,我强烈建议您使用.find
类中的方法Client
ActiveRecord
推荐阅读
- docker - 在私有 docker 注册表配置 yml 中插入多个通知端点
- python - 全局变量无法从其他模块正确检索
- asp.net-core - 选择登录asp.net core的字段
- nmap - NMAP 实时主机发现未知命令:-T4
- javascript - 如何在 Vaadin 7 中禁用自定义小部件的备份
- python-3.x - 在尝试执行复杂查询(Pandas)时收到错误“无法使用 dtyped [object] 数组和 [bool] 类型的标量执行 'ror_'”
- angularjs - AngularJS:渲染控制器而不等待首先初始化工厂变量
- amazon-web-services - DynamoDB 不在流中显示更新的项目数据
- javascript - 同步方法不从服务器获取消息
- proxy - 3proxy - 如果我与子网一起使用,代理将不起作用