問題を解決するのを手伝ってください:
私は2つのデバイスモデル(ユーザーと管理者)を持っています
そして、私はルートを持ついくつかのポストモデルとコントローラを持っています:
/posts
/posts/80
/posts/80/edit
そして私はそれが欲しい:管理者はユーザーがアクセスできるすべてのアクセス権を持っています:
/post
and
/post/80 ( if he is creator of this post )
私はこれをしました:
class PostsController < ApplicationController
before_filter :check_guest_logged_in!, :except => [:index, :show]
.
.
.
private
def check_guest_logged_in!
if user_signed_in?
authenticate_user!
elsif admin_signed_in?
authenticate_admin!
else
redirect_to root_path
end
end
ただし、この場合、ユーザーが承認されている場合、彼はブラウザに入れることができます
/posts/80/edit
そして彼はアクセス権を取得します(彼がこの投稿の作成者でなくても)
どうすればこれを修正できますか?
私はそのプライベートのようなものが欲しい
def check_guest_logged_in!
if user_signed_in?
authenticate_user!
if ( current_user.id == @post.user.id )
else
return false;
end
elsif admin_signed_in?
authenticate_admin!
else
redirect_to root_path
end
end
しかし、それはうまくいきません