あなたは不正アクセスに:access_denied
メソッドを使用するようにActiveAdmin
を設定しているとして、あなたはapplication_controller.rb
でこのメソッドを定義して、彼らがアクセスする権限を持っているリソースにアクセスする権限を持っていないページからユーザーをリダイレクトする必要があります。ブラウザにエラーメッセージを表示することもできます。典型的な例:HTML要求のためのホーム・ページにリダイレクトし、JSON要求を禁止403を返す
class ApplicationController < ActionController::Base
protect_from_forgery with: :exception
def access_denied(exception)
redirect_to admin_root_path, alert: exception.message
end
end
例:
def access_denied(exception)
respond_to do |format|
format.json { head :forbidden, content_type: 'text/html' }
format.html { redirect_to main_app.root_url, notice: exception.message }
end
end
あなたは403禁止HTTPコードを返すことを好む場合は、作成public/403.html
ファイルなどのようにそれをレンダリング:
def access_denied(exception)
render file: Rails.root.join('public', '403.html'),
status: 403,
layout: false
end
ログアウトしてから権限のないゲストユーザーと同じ管理者ページにアクセスすると、すべて正常に機能します(500エラーなし)。 – AntonTkachov