I think your method is great, but personally, I would do something like this (with the information provided) ...
Use reject
to limit the collection to the desired elements.
def repeat_user(user, usernames) Profile.exists?(:screen_name => user.from_user) || SearchResults.exists?(:username => user.from_user) || usernames.include? user.from_user end User.all.reject{ |user| repeat_user user, usernames }.each do |user|
source share