「must_have_permission_to_write」のようなbeforeフィルターが必要です。これを呼び出すと、ユーザーに書き込みの権限がない場合に、「それはできません」というメッセージが表示されます。そして戻る。
問題は、もちろん「アクションごとに1回だけレンダリングまたはリダイレクトできる」ということです... beforeフィルターで実行を停止するにはどうすればよいですか?ありがとう
「must_have_permission_to_write」のようなbeforeフィルターが必要です。これを呼び出すと、ユーザーに書き込みの権限がない場合に、「それはできません」というメッセージが表示されます。そして戻る。
問題は、もちろん「アクションごとに1回だけレンダリングまたはリダイレクトできる」ということです... beforeフィルターで実行を停止するにはどうすればよいですか?ありがとう
最も簡単な答えは、リダイレクトを追加して、must_have_permission_to_write
メソッドにfalseを返すことだと思います。
def must_have_permission_to_write
unless current_user.has_permission?(something)
redirect_to access_denied_path
return false
end
end
次に、どこかでアクセスが拒否された場合のアクションを作成し、ルートを追加して、必要なものをテンプレートに追加します。
ここの投稿について気づいたことがいくつかあります。
and return
次のように、を追加するだけです。
before_filter :must_have_permission_to_write
def must_have_permission_to_write
redirect_to login_path and return unless current_user
end