activescord类来自自定义sql查询

时间:2014-05-28 14:09:11

标签: ruby activerecord

是否可以从自定义sql查询或视图创建activerecord类? 它不需要是可编辑的。 例如:

class c
  select a.*, b.* from a, b where a.code = b.code
end

此示例是一个连接,其中重新发送来自两个表的所有字段,一对一连接在activerecord中仅存在来自一个表的字段,其他字段可通过a.bs.fieldname访问。 我希望他们能够成为同一级别的领域,因此在一个级别中。

这样a.code,a.name和b.code,b.extra可以作为c.code,c.name,c.extra

访问

1 个答案:

答案 0 :(得分:1)

ActiveRecord将与表一起使用您的视图。因此,首先为您的事物创建自定义视图

CREATE VIEW some_things AS (select a.*, b.* from a, b where a.code = b.code)

然后使用基于ActiveRecord的类来访问它们(app / models / some_thing.rb)

class SomeThing < ActiveRecord::Base
end

您可以像访问任何其他AR对象一样访问您的内容

p SomeThing.where(code: 'xxx-yyy').order(:name).limit(10).all