Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Mostrar os dados do usuário atual e seu nome na tag de seleção


Não sei por que você precisa carregar current_user na lista de seleção. Mas você pode personalizar a seleção no modelo de usuário da seguinte forma:
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

A edição depende do comentário:

Adicione o seguinte método no modelo de usuário:
def is_manager?
   self.role == "manager"
end

Em seguida, atualize a seleção da seguinte forma:
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