如果我有一个带有lambda的范围并且它接受一个参数,取决于参数的值,我可能知道不会有任何匹配,但我仍然想要返回一个关系,而不是一个空数组:
scope :for_users, lambda { |users| users.any? ? where("user_id IN (?)", users.map(&:id).join(',')) : [] }
Run Code Online (Sandbox Code Playgroud)
我真正想要的是一种"无"方法,与"所有"相反,它返回一个仍然可以链接的关系,但会导致查询被短路.