0

在“新建”还是“创建”?在“编辑”或“更新”中?

我检查这一行:

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_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 回答