Rails ActiveRecord加入混乱

摩根

在控制台中,此代码:

Patient.joins(:notes,:recordings).find(1)

退货

ActiveRecord::RecordNotFound: Couldn't find Patient with id=1

这很奇怪,因为在同一个控制台中Patient.find(1)可以正常工作并且检索ID为1的患者的记录。

我的理解是我应该能够做到:

a = Patient.joins(:notes,:recordings).find(1)
a.notes
a.recordings

并且a.notes应该返回与ID为1且与a.recordings相同的患者相关的所有注释。很明显,我在这里遗漏了什么...任何想法?

乌萨

这是因为RailsINNER JOIN默认情况下会这样做。你的病人1没有任何notesrecordings

如果可以的话可以做一个左联接。

Patient.joins("LEFT JOIN notes on notes.patient_id = patients.id")
       .joins("LEFT JOIN recordings on recordings.patient_id = patients.id")
       .find(1)

或加载患者,然后加载关联

 a = Patient.find(1)
 a.notes
 a.recordings

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

有条件的Rails Nested加入Activerecord

来自分类Dev

如何在Ruby on Rails的ActiveRecord查询中加入间接关联?

来自分类Dev

ActiveRecord 加入在 where 子句中抛出 Column 是不明确的错误 - Rails 5.1

来自分类Dev

ActiveRecord加入

来自分类Dev

Rails的加入限制了关联

来自分类Dev

Rails-加入条件

来自分类Dev

Rails的加入限制了关联

来自分类Dev

Rails:自我加入

来自分类Dev

Rails ActiveRecord类型约束

来自分类Dev

Rails ActiveRecord where子句

来自分类常见问题

禁用ActiveRecord for Rails 4

来自分类常见问题

Rails 5:ActiveRecord或查询

来自分类Dev

rails 4 ActiveRecord :: StatementInvalid

来自分类Dev

Rails ActiveRecord where或子句

来自分类Dev

Rails 4 ActiveRecord :: AssociationTypeMismatch

来自分类Dev

Rails 4 ActiveRecord组

来自分类Dev

Rails ActiveRecord渴望加载

来自分类Dev

Rails中的ActiveRecord查询

来自分类Dev

Rails 4.0 ActiveRecord :: RecordNotFound

来自分类Dev

rails 4 ActiveRecord :: StatementInvalid

来自分类Dev

加速Rails ActiveRecord提交

来自分类Dev

ActiveRecord Rails高效查询

来自分类Dev

Rails ActiveRecord_Relation

来自分类Dev

Rails ActiveRecord关联

来自分类Dev

Rails ActiveRecord交换数据

来自分类Dev

Rails从表单更新ActiveRecord

来自分类Dev

Rails ActiveRecord迁移ArgumentError

来自分类Dev

Rails ActiveRecord哈希条件

来自分类Dev

Ruby on Rails:ActiveRecord :: AssociationTypeMismatch