一个 model,如果没有定义 relation,直接用 joins 来连接其他 model 后,没有办法取回 join 的数据,这是新版的行为吗? 示例: (models) class A end
class B end
result = A.joins("left outer join Bs bb on ..).select("Bs., As.").to_a
看生成的查询是正常的,问题是取不回来数据,result[0].class 是 A,访问不到其他变量数据
没描述清楚??
换 sequel 去了
可以用
A.joins('left join bb on ...').select('...........').explain
生成的 sql 放在 sql 查询工具里面看看是否能得到结果。
看了日志,查询是 OK 的,结果出来。问题是 model 里没有定义 relation,数据就不见了~
select("A.blablalb as property_a, B.blablalba as property_b") 需要重命名 select 出来的字段 然后通过 result.property_a 去访问。
select("A.blablalb as property_a, B.blablalba as property_b")
#5 楼 @yakjuly 4.2.54 里面 A.joins 后,result 是 A 类型的,之前试了不能访问 property_a 啊
返回结果是前者的。不会有 join 表的结果。如果想要的话,要么加 relation,要么自己写 SQL
原来可以用 Model.connection.select_all