在“新”或“创建”中? 在“修改”或“更新”?
我查一下这行:
correct_user(@car.user) if not current_user.admin?
其中
def correct_user(user)
redirect_to root_path if current_user != user
end
答案 0 :(得分:2)
如果这些操作都需要管理员权限,那么您最好使用之前的过滤器。
before_filter :correct_user, :only => [:new, :create, :edit, :update]
答案 1 :(得分: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