アレイの場合、次のいずれかを使用できます。
# Will raise exception if any value not found
User.find( [1,3,5] )
# Will not raise an exception
User.find_all_by_id( [1,3,5] ) # Rails 3
User.where(id: [1,3,5]) # Rails 4
範囲を使用している場合は、次を使用できます:
# Will raise exception if any value not found
User.find((1..4).to_a) #same as User.find([1,2,3,4])
# Will not raise an exception
User.find_all_by_id(1..4) # Rails 3
User.where(id: 1..4) # Rails 4
@ diego.greyrobotがコメントで指摘しているように、範囲はSQL BETWEEN句を引き起こし、配列はSQLIN句を引き起こします。
しないでください User.find_by_id()
を使用します --どのようにIDを渡しても、1つのレコードのみが返されます。