' new 'または' create '?「編集」または「更新」で?
私はこの行で確認します:
correct_user(@car.user) if not current_user.admin?
どこ
def correct_user(user)
redirect_to root_path if current_user != user
end
' new 'または' create '?「編集」または「更新」で?
私はこの行で確認します:
correct_user(@car.user) if not current_user.admin?
どこ
def correct_user(user)
redirect_to root_path if current_user != user
end
これらのアクションすべてに管理者権限が必要な場合は、beforeフィルターを使用することをお勧めします。
before_filter :correct_user, :only => [:new, :create, :edit, :update]
権限がない場合、ユーザーはすべての場所でアクセスできません。
アクションでコードを記述する必要がないように、コードを構造化します。
before_filter :load_car, :redirect_unless_correct_user!, :except => :index
protected
def load_car
@car = Car.find(params[:car_id])
end
def redirect_unless_correct_user!
redirect_to(root_path) unless (current_user == @car.user) || user.admin?
end