What is the correct way to use the guard clause in this sample?
def require_admin
unless current_user && current_user.role == 'admin'
flash[:error] = "You are not an admin"
redirect_to root_path
end
end
I don't know where to put flash message when trying to rewrite using these https://github.com/bbatsov/ruby-style-guide#no-nested-conditionals conventions
You can use the return
statement here. Essentially, there is no need for the method to continue if those conditions are met, so you can bail out early.
def require_admin
return if current_user&.role == 'admin'
flash[:error] = 'You are not an admin'
redirect_to root_path
end