Pourquoi votre code ne fonctionne pas?
La whereméthode renvoie un objet ActiveRecord :: Relation (agit comme un tableau qui contient les résultats de la where), il peut être vide mais il ne le sera jamaisnil .
Business.where(id: -1) 
 
Business.where(id: -1).nil? 
 
Business.where(id: -1).empty? 
 
Comment tester si au moins un enregistrement existe?
Option 1: Utilisation.exists?
if Business.exists?(user_id: current_user.id)
  
  
else
  
end
Option 2: Utiliser .present?(ou .blank?, l'opposé de .present?)
if Business.where(:user_id => current_user.id).present?
  
else
  
end
Option 3: affectation de variable dans l'instruction if
if business = Business.where(:user_id => current_user.id).first
  business.do_some_stuff
else
  
end
Cette option peut être considérée comme une odeur de code par certains linters (Rubocop par exemple).
Option 3b: Affectation des variables
business = Business.where(user_id: current_user.id).first
if business
  
else
  
end
Vous pouvez également utiliser à la .find_by_user_id(current_user.id)place de.where(...).first
Meilleure option:
- Si vous n'utilisez pas le ou les 
Businessobjets: Option 1 
- Si vous devez utiliser le ou les 
Businessobjets: Option 3 
     
              
whereretournera un tableau vide s'il n'y a pas d'enregistrements. Et[]n'est pas égalnil