Rails 多表关联查询指定字段的方法
Rails中都是返回的单个模型的对象,怎么返回多个表中的指定字段则没做什么介绍。
?
在实际的工作中不可能只是返回单个表的模型,于是GOOGLE下,发现find_by_sql方法的返回中已经包含了查询的字段信息。
?
table Aid Integername Stringtable Bid Integerage Integera_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 #Arrayputs @as[0].class #Aputs @as[0].inspect # #<A name:"test">puts "name:" << @as[0].name # testputs "age:" << @as[0].age # 11#虽然查询结果类型是A,但仍然可以直接调用类型A中没有的age方法取得值
?
这样就可以不用受到单个模型类的约束,自由使用sql语句。
而返回结果列表中的单个元素作为一个map对象进行取值。
?