You can use the exist? function like this :
if Product.where(:name => p.name, :desc => p.desc, :source => "some source", [more fields])
# do something
else
# do something else
end
You can also use the find_or_create_by if your goal is to create a new record if it does not exist like this :
Product.find_or_create_by(:name => p.name, :desc => p.desc, :source => "some source", [more fields])