Rails 动态 join 的问题

doun · 2016年03月20日 · 最后由 doun 回复于 2016年03月23日 · 2142 次阅读

一个 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 去访问。

#5 楼 @yakjuly 4.2.54 里面 A.joins 后,result 是 A 类型的,之前试了不能访问 property_a 啊

返回结果是前者的。不会有 join 表的结果。如果想要的话,要么加 relation,要么自己写 SQL

原来可以用 Model.connection.select_all

需要 登录 后方可回复, 如果你还没有账号请 注册新账号