我的 users_controller 中有这个过滤器之前的电流
before_filter :authenticate_usergroup, :except => [:edit, :update, :show]
它非常适合仅允许用户编辑他们的信息但无法查看所有用户,但我发现只需更改他们在 url 中的“id”,他们还可以编辑其他用户信息。
我如何只允许当前用户使用 :edit、:show 和 :update 函数作为他们自己的记录。我的 application_controller 中有这个方法可以访问当前用户
def current_user
return unless session[:user_id]
@current_user ||= User.find_by_id(session[:user_id])
end
#update from users_controller.rb
def update
@user = User.find(params[:id])
respond_to do |format|
if @user.update_attributes(params[:user])
format.html { redirect_to @user, :notice => 'User was successfully updated.' }
format.json { head :no_content }
else
format.html { render :action => "edit" }
format.json { render :json => @user.errors, :status => :unprocessable_entity }
end
end
end