0

我想允许用户编辑他们的帐户,并且只编辑他们的帐户,而不使用 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,结果是一样的(public/422)。

有人知道我可以解决的方法吗?谢谢

4

1 回答 1

2
unless current_user == (params[:id])

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

unless current_user.id == params.fetch(:id).to_i
于 2013-01-16T15:30:48.393 回答