ActiveRecord查询在小改动后返回任何内容

时间:2014-05-07 19:39:16

标签: ruby-on-rails activerecord ruby-on-rails-4

  def self.all_matches(email, ....)

    #blockades and blockades_by is from amistad gem

    ids = Profile.find_by_email(email).blockades.pluck(:id) + Profile.find_by_email(email).blockades_by.pluck(:id)

     self.order('random()').
             where(:approval_status => Profile::ApprovalStatus::APPROVED).
             where('id NOT IN (?)', ids).
             where.not(:email => email) 

当我添加

             where('id NOT IN (?)', ids).

它什么都不返回。在我添加它之前它返回了4个元素。

当我进入控制台时,抓住了个人资料并搜查了被封锁和封锁,因为他们都是空的。

=(

任何想法为什么?

1 个答案:

答案 0 :(得分:1)

如果ids是一个空数组,它将不返回任何内容。当数组为空时,您应该跳过运行where('id NOT IN (?)', ids)