0

' new 'または' create '?「編集」または「更新」で?

私はこの行で確認します:

correct_user(@car.user) if not current_user.admin?

どこ

def correct_user(user)
   redirect_to root_path if current_user != user
end
4

2 に答える 2

2

これらのアクションすべてに管理者権限が必要な場合は、beforeフィルターを使用することをお勧めします。

before_filter :correct_user,  :only => [:new, :create, :edit, :update]
于 2012-07-21T13:52:27.527 に答える
1

権限がない場合、ユーザーはすべての場所でアクセスできません。

アクションでコードを記述する必要がないように、コードを構造化します。

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
于 2012-07-21T13:58:26.200 に答える