我没有更改我的users_controller文件,但现在我在更新用户配置文件“错误的参数数量(2 for 1)”后收到此错误。它指向“app / controllers / users_controller.rb:41:in”update“”。
我的代码看起来是正确的,但我必须遗漏一些东西。有什么想法吗?
users_controller:
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
答案 0 :(得分: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)
在错过“之前。已经部分了。