2013-03-26 91 views
0

将日志概念应用于我的图书目录显示时,当用户陷入困境时,我即将发生这种错误。ActiveModel :: MassAssignmentSecurity :: UsersController中的错误#创建

Can't mass-assign protected attributes: password_confirmation, password 

而且我在app /型号编码/ 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

 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 

创建方法的代码请任何帮助!

回答

4

如果你想在指定你做的方式这些值,你需要将它们添加到attr_accessible在你的模型:

attr_accessible :name, :password_digest, :password, :password_confirmation 

我怀疑你可能不希望同时将与那些,所以你可能要首先从哈希删除(控制器):

user = params[:user] 
user.delete(:password_confirmation) 
@user = User.new(user) 

你也可以创建一个包含只是想用它来创建新的User值的新的哈希值,如果你只有几个值,但很多o f值忽略。

(你也可以创建一个新的“空” User,只是分配给你想要的价值观 - 如果让你的情况更有意义)

+0

感谢您的解决方案。再次发生的事情是,当用户注册时,当前页面被移动到user_url,其中显示用户列表...这就是它显示的内容。 用户#{@user.name}已成功创建。 用户名不显示! – user2211662 2013-03-26 13:34:54

相关问题