Enumerable#detect
в порядке, но я думаю, что Enumerable#any?
(который возвращает логическое значение), это строго то, что вы просили:
xs = [{:id => 1, :name => 'a'}, {:id => 2, :name => 'b'}]
puts xs.any? {|x| x[:id] == 1} # true
puts xs.any? {|x| x[:id] == 5} # false