授权用户只使用Rails编辑他们的帐户



我希望允许用户编辑他们的帐户,并且只有他们的帐户,而不使用设计和/或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)。

有人知道我该怎么解决这个问题吗?由于

unless current_user == (params[:id])

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

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

最新更新