我想建立使用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