授权用户仅使用Rails编辑其帐户

时间:2013-01-16 15:27:49

标签: ruby-on-rails

我想允许用户在不使用Devise和/或Cancan的情况下编辑他们的帐户,只能编辑他们的帐户。

我在application_controller中有以下内容:

helper_method :current_user
helper_method :require_proprio

private

def current_user
  @current_user ||= User.find(session[:user_id]) if session[:user_id]
end

def require_proprio
    unless current_user == (params[:id])
        render :file => "#{Rails.root}/public/422", :status => 500
     end
end

这是users_controller

before_filter :require_proprio , :only => [ :edit, :update]

但是,当我与user.id = 10建立联系时,我无法访问页面http://localhost:3000/users/10/edit。出现页面public/422。我还试图访问http://localhost:3000/users/11/edit,结果是相同的(公共/ 422)。

有人知道我可以解决它的方式吗?感谢

1 个答案:

答案 0 :(得分:2)

unless current_user == (params[:id])

current_user是一个对象,所以这永远不会成真。尝试:

unless current_user.id == params.fetch(:id).to_i