2013-10-23 46 views
1

我使用PostgreSQL的inheritance功能来建模我的数据,并且我需要在某些ActiveRecord模型的查询中使用ONLY关键字。例如,我想要Shift.all调用SELECT shifts.* FROM ONLY shifts。否则,它也会返回来自子表assigned_shifts的结果。如何将关键字添加到ActiveRecord查询的FROM子句

据我所知,没有简单的可配置的方法来做到这一点。我已经在ActiveRecord模型上尝试过set.table_name = 'ONLY shifts',但是这会产生一个错误,因为它将'ONLY shifts'.*添加到SELECT声明中。

有没有办法用猴子补丁Arel或ActiveRecord来构建我需要的查询?

回答

4

我自己找到了答案。

为后人:

class Shifts < ActiveRecord::Base 
    default_scope -> { from("ONLY shifts") } 
end 
相关问题