誰かが助けることができるのだろうかと思います。私は管理者ユーザーだけがユーザーインデックスを見ることができるはずのアプリの現在のセットアップの下にあります。これはうまくいきます。また、管理者以外のユーザーもrootにリダイレクトされます。これもうまくいきます(ユーザープロファイルにリダイレクトしたいのですが)Railsにはアクションの前に管理者のアクセスが含まれています
実際の問題は、管理者ユーザーが任意のユーザープロファイルページにアクセスできるようにすることですユーザーはインデックスページのリンクからアクセスできますが、現時点では自分のページにアクセスできます。これは、アクションリストの前の正しいユーザが:show
私はshow_actionを ':admin_user before action'に追加しようとしましたが、役に立たないようです。どのようにこれを修正するための任意の提案は非常に感謝します。
多くのおかげ
users_controller.rb
class UsersController < ApplicationController
before_action :logged_in_user, only: [:edit, :update, :show]
before_action :correct_user, only: [:edit, :update, :show]
before_action :admin_user, only: [:index]
定義correct_user
def correct_user
@user = User.find(params[:id])
redirect_to(root_url) unless current_user?(@user)
end
定義ADMIN_USER
def admin_user
if current_user.admin?
flash.now[:success] = "Admin Access Granted"
else
redirect_to root_path
end
end
SESSIONS- sessions_helper.rb
はあなたがほぼ完了しているCURRENT_USER
def current_user?(user)
user == current_user
end
def current_user
@current_user ||= User.find_by(id: session[:user_id])
end
申し訳ありませんが、私はあなたの管理者はユーザ#管理者 'への対応User'オブジェクト'であることを認識していなかった? '、私の答えに更新、私はそれに旋回を与えてみましょうこんなに早く返信 – amingilani
おかげで、それは完璧な理にかなっていますしかし、それが他のコードとの競合や問題を特定しているかどうかを確認することができます。指が交差した。 –