Rails scope that does nothing for NOT IN values

前端 未结 4 1942
北荒
北荒 2021-02-13 22:53

I have a Rails 3 scope that excludes an array of ids.

What is the best way to write the scope so that it does nothing when the array is empty and is still chainable? I c

4条回答
  •  我寻月下人不归
    2021-02-13 23:29

    Here's a slight variation on Douglas' answer, using ruby 1.9 stabby lambda syntax and without the brackets in the where method.

    scope :excluding_ids, ->(ids) {where("id NOT IN (?)", ids) if ids.any?}
    

提交回复
热议问题