我想建立使用squeel一個查詢生成器,這裏是我是如何做到:如何使用Squeel進行innested查詢?
父類:
module ModelFilters
class Base
def initialize(user)
@user = user
end
def build(method_name)
head.where { my { send(method_name) } }
end
protected
def head
end
end
end
子類:
module ModelFilters
class Collection < Base
def __showable__
not_private | author
end
protected
def head
::Collection.joins(:collaborators)
end
private
def not_private
is_private == false
end
def author
user_id == @user.id
end
end
end
最後我的電話:
a = ModelFilters::Collection.new(user)
a.build(:__showable__)
其實我的問題是我做的不知道如何Squeel工作innested查詢,我的實際錯誤是undefined local variable or method 'is_private'
(顯然)。
有沒有辦法使用Squeel(或其他ActiveRecord查詢生成器)來構建類似這樣的東西?
謝謝大家!
滑稽找到'showable'但不是'is_private' – apneadiving
@apneadiving'showable'是子類(叫我的'send'方法)的功能,而'is_private'是我的模型屬性 – Rowandish