在此示例中使用guard子句的正确方法是什么?
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约定
重写时,我不知道在哪里放置flash消息答案 0 :(得分:20)
您可以在此处使用return
声明。从本质上讲,该方法无需继续if
满足这些条件,因此您可以提前纾困。
def require_admin
return if current_user && current_user.role == 'admin'
flash[:error] = "You are not an admin"
redirect_to root_path
end