在我的图书目录显示中应用日志记录概念时,当用户正在重新编辑时,我会出现这种错误。
Can't mass-assign protected attributes: password_confirmation, password
我在app / model / user.rb中的代码如下:
class User < ActiveRecord::Base
attr_accessible :name, :password_digest
validates :name, :presence => true, :uniqueness => true
has_secure_password
end
我的app / contollers / user_controller.rb中的create method代码
def create
@user = User.new(params[:user])
respond_to do |format|
if @user.save
format.html { redirect_to users_url, :notice => 'User #{@user.name} was successfully created.' }
format.json { render :json => @user, :status => :created, :location => @user }
else
format.html { render :action => "new" }
format.json { render :json => @user.errors, :status => :unprocessable_entity }
end
end
end
请帮忙!
答案 0 :(得分:4)
如果您想按照自己的方式分配这些值,则需要将它们添加到模型中的attr_accessible
:
attr_accessible :name, :password_digest, :password, :password_confirmation
我怀疑你可能不想分配这两个,所以你可能想先从那个哈希中删除它们(在控制器中):
user = params[:user]
user.delete(:password_confirmation)
@user = User.new(user)
您还可以创建一个新哈希,其中只包含您要用来创建新User
的值,如果您只有几个值可以保留,但要忽略很多值。
(你也可以创建一个新的“空”User
并只分配你想要的值 - 如果在你的情况下更有意义的话。)