このサンプルで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 規則
ここで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