2013-10-23 84 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 
相關問題