Mysql
 sql >> Base de données >  >> RDS >> Mysql

Afficher les données de l'utilisateur actuel et son nom dans la balise select

Je ne sais pas pourquoi vous devez charger current_user dans la liste de sélection. Mais vous pouvez personnaliser la sélection dans le modèle utilisateur comme suit :

def user_for_select(user)
  self
    .where(id: user.id)
    .pluck("CASE WHEN id = #{user.id} THEN 'Me' ELSE name END AS name, id")
  end
end

La modification dépend du commentaire :

Ajoutez la méthode suivante dans le modèle utilisateur :

def is_manager?
   self.role == "manager"
end

Ensuite, mettez à jour la sélection comme suit :

def user_for_select(user)
  if user.is_manager?
      self
        .pluck("CASE WHEN id = #{user.id} THEN 'Me' ELSE name END AS name, id")
        .unshift(['All', 'all'])
  else
       self
         .where(id: user.id)
         .pluck("CASE WHEN id = #{user.id} THEN 'Me' ELSE name END AS name, id")
  end
end