Rails 多表关联查询指定字段的方法

Rails中都是返回的单个模型的对象,怎么返回多个表中的指定字段则没做什么介绍。

 

在实际的工作中不可能只是返回单个表的模型,于是GOOGLE下,发现find_by_sql方法的返回中已经包含了查询的字段信息。

 

table A
id Integer
name String

table B
id Integer
age Integer
a_id Integer

@as = A.find_by_sql("select a.name,b.age from A a,B b where a.id = b.a_id")

puts @as.class #Array
puts @as[0].class #A

puts @as[0].inspect # #<A name:\"test\">

puts "name:" << @as[0].name # test
puts "age:" << @as[0].age   # 11

#虽然查询结果类型是A,但仍然可以直接调用类型A中没有的age方法取得值

 

这样就可以不用受到单个模型类的约束,自由使用sql语句。

而返回结果列表中的单个元素作为一个map对象进行取值。

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值