Qual è il modo corretto di utilizzare la clausola di guardia in questo esempio?Come utilizzare correttamente la clausola di guardia in Ruby
def require_admin
unless current_user && current_user.role == 'admin'
flash[:error] = "You are not an admin"
redirect_to root_path
end
end
non so dove mettere messaggio flash quando si cerca di riscrivere utilizzando queste convenzioni https://github.com/bbatsov/ruby-style-guide#no-nested-conditionals
Per espandere la risposta di Justin, in realtà creerei un metodo nel modello utente per il ruolo admin. In questo modo puoi chiamare "current_user.admin?" Per il controllo. Solo un po 'più pulito. Oppure potresti persino scrivere un metodo per non admin e cambiare la tua clausola di guardia in "return a current_user.not_admin?" –