问题描述
考虑这些模型:
class Member < Sequel::Model
one_to_many :member_integrations
# columns: [:id,:name]
end
class MemberIntegration < Sequel::Model
many_to_one :member
one_to_many :member_integration_fields
# columns: [:member_id,:name]
end
class MemberIntegrationField < Sequel::Model
many_to_one :member_integration
# columns: [:id,:member_integration_id,:name]
end
我需要加载分页成员,按 MemberIntegrationField#name
过滤和排序他们
members = Member.exclude(name: nil).eager_graph(member_integrations: [:member_integration_fields])
members = members.where(Sequel.ilike(Sequel[:member_integration_fields][:name],'%John%'))
members = members.order(Sequel[:member_integration_fields][:name].desc)
所有这些都有效,但它返回重复的成员,因此分页不起作用。
Member.count # 5246
members.limit(50,0).all.count # 25
members.count # 31473
我知道为什么成员会重复,但我不知道如何正确获取它们。因此,分页获得错误的总计数 31473
,并获取错误的成员计数 25
。
值得一提的是,ilike
必须过滤成员,但最终,应返回过滤成员的所有成员集成。
感谢任何帮助。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)