sql >> Base de Datos >  >> RDS >> Mysql

Mostrar los datos del usuario actual y su nombre en la etiqueta de selección

No sé por qué necesita cargar current_user en la lista de selección. Pero puede personalizar la selección en el modelo de usuario de la siguiente manera:

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

Editar depende del comentario:

Agregue el siguiente método en el modelo de usuario:

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

Luego actualice la selección de la siguiente manera:

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