在此示例中使用保护子句的正确方法是什么?
def require_admin
unless current_user && current_user.role == 'admin'
flash[:error] = "You are not an admin"
redirect_to root_path
end
end
尝试使用这些重写时,我不知道将闪存消息放在哪里 https://github.com/bbatsov/ruby-style-guide#no-nested-conditionals约定
最佳答案
您可以在此处使用return
语句。本质上,如果满足这些条件, 方法就不需要继续,因此您可以尽早退出。
def require_admin
return if current_user&.role == 'admin'
flash[:error] = 'You are not an admin'
redirect_to root_path
end
关于ruby-on-rails - 如何在 Ruby 中正确使用 guard 子句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31943125/