在“新建”还是“创建”?在“编辑”或“更新”中?
我检查这一行:
correct_user(@car.user) if not current_user.admin?
在哪里
def correct_user(user)
redirect_to root_path if current_user != user
end
在“新建”还是“创建”?在“编辑”或“更新”中?
我检查这一行:
correct_user(@car.user) if not current_user.admin?
在哪里
def correct_user(user)
redirect_to root_path if current_user != user
end
如果这些操作都需要管理员权限,最好使用前置过滤器。
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