嘿伙计们,我感谢railscasts.com创建了一些自定义身份验证,但我有点卡住,因为我需要限制用户编辑其他用户的个人资料。
这是我的authenticate_user和current_user方法:
private
def current_user
@current_user ||= User.find_by_auth_token!(cookies[:auth_token]) if cookies[:auth_token]
end
def authenticate_user!
if current_user.nil?
redirect_to login_url, :alert => "You must first log in to access this page"
end
end
这是我的 UsersController 中的before_filter:
before_filter :authenticate_user!, :only => [:edit, :update, :destroy]`
编辑:由于alock27修复了它。
我必须编辑我的users_controller并修改编辑操作,如下所示:
@user = User.find(params[:id]
redirect_to root_url unless current_user == @user
答案 0 :(得分:1)
答案 1 :(得分:1)
您不必提供编辑,更新和销毁的ID:您已经拥有current_user。
编辑@user = User.find(id)
而不是编辑current_user
。因此,您的身份验证功能可确保用户只编辑自己的配置文件。