0

我没有更改我的 users_controller 文件,但现在我在更新用户配置文件“参数数量错误(2 比 1)”后收到此错误。它指向“app/controllers/users_controller.rb:41:in `update'”。

我的代码看起来是正确的,但我必须遗漏一些东西。有任何想法吗?

用户控制器:

class UsersController < ApplicationController

  def new
    @user = User.new
  end

  def profile
    @profile = User.profile
  end

  def create
    @user = User.new(params[:user])
    if @user.save
      UserMailer.registration_confirmation(@user).deliver
      session[:user_id] = @user.id
      redirect_to root_url, notice: "Thank you for signing up!"
    else
      render "new"
    end
  end

  def show
    @user = User.find(params[:id])
  end

    def edit
      @user = User.find(params[:id])
end

  def index
    @users = User.all
  end

  def destroy
     User.find(params[:id]).destroy
     flash[:success] = "User deleted."
     redirect_to users_url
   end

def update
    @user = if current_user.role?(:admin)
       User.find(params[:id])
     else
       current_user
     end
    if @user.update_attributes(params[:user])
      flash[:success] = "Account updated"
      redirect_to @user
    else
      render 'edit'
    end
end
end
4

1 回答 1

1

我找到了解决问题的方法。

在 user.rb 我必须添加:

  def has_role?(role_name)
    role.present? && role.to_sym == role_name.to_sym
  end

然后在我刚刚添加的控制器中:

 @user = if current_user.has_role?(:admin)

在它缺少“.has”部分之前。

于 2013-03-18T13:55:26.420 回答