У меня есть таблица с именем inbox_messages
со следующими строками:
user_id message_id
======= ==========
4 8
4 1
4 7
0 9
0 10
0 11
0 12
Таблица соответствует следующей модели:
class InboxMessage < ActiveRecord::Base
end
Когда я вызываю метод find
сIN
caluse, я получаю разные результаты в зависимости от положения параметров.
InboxMessage.find(:all, :conditions => [ "user_id IN (?)", "0,4"]) # 8 rows
InboxMessage.find(:all, :conditions => [ "user_id IN (?)", "4,0"]) # 3 rows
Второй вызов выше, возвращает 3 строки вместо 8. Другие сценарии работают нормально, т.е.
InboxMessage.find(:all, :conditions => [ "user_id IN (0, 4)" ]) # 8 rows
InboxMessage.find(:all, :conditions => [ "user_id IN (4, 0)" ]) # 8 rows
InboxMessage.find(:all, :conditions => [ :user_id => [0, 4] ]) # 8 rows
InboxMessage.find(:all, :conditions => [ :user_id => [4, 0] ]) # 8 rows