Ruby on rails 4 Rails 4具有\u安全\u密码
在Rails 4应用程序中——当我试图在控制台中创建一个简单的用户时,我遇到了这个错误Ruby on rails 4 Rails 4具有\u安全\u密码,ruby-on-rails-4,Ruby On Rails 4,在Rails 4应用程序中——当我试图在控制台中创建一个简单的用户时,我遇到了这个错误 RuntimeError: Password digest missing on new record 我的模型、控制器和架构如下所示: class User < ActiveRecord::Base # User.rb has_secure_password end class UsersController < ApplicationController def new
RuntimeError:
Password digest missing on new record
我的模型、控制器和架构如下所示:
class User < ActiveRecord::Base # User.rb
has_secure_password
end
class UsersController < ApplicationController
def new
@user = User.new
end
def create
@user = User.new(user_params)
if @user.save
redirect_to root_path, notice: "Thank you for signing up!"
else
render "new"
end
end
private
def user_params
params.require(:user).permit(:email, :name, :password, :password_confirmation)
end
end
create_table "users", force: true do |t| #db/schema.rb (edited for brevity)
t.string "email"
t.string "name"
t.text "password_digest"
t.datetime "created_at"
t.datetime "updated_at"
end
class User
我正在使用postgresql,不确定这是否是一个bug,或者我是否遗漏了一些简单的东西
谢谢,在Rails 4中,默认情况下所有属性都是mass赋值的,因此您不需要使用attr\u accessible。现在你必须说明你想要保护哪些。你会这样写吗
attr_protected :admin
当密码摘要为空时,将引发您收到的错误。它可能与您的属性帐户有关:。我可以看到您的视图吗?我在rails 4中看到了:
要使用“has\u secure\u password”,必须使用参数password\u digest
Schema Information=name:string,password\u digest:string
类用户:create
结束
和控制器
def用户参数
参数require(:user).permit(:name,:password_digest,
:密码,:密码(确认)
结束
def创建
@user=user.new(用户参数)
回应待办事项|格式|
如果@user.save
format.html{redirect_to users_url,注意:“User#{@User.name}已成功创建。“”
format.json{呈现操作:“显示”,状态::已创建,位置:@user}
其他的
format.html{呈现操作:'new'}
format.json{render json:@user.errors,status::unprocessable_entity}
结束
结束
结束
我遇到了完全相同的问题,但这部分解决了我的问题。无法存储密码确认,因为它不是许可证参数
def用户参数
参数require(:user).permit(:name,:password\u digest,:password,:password\u confirmation)
结束
您安装了bcrypt gem吗?没有bcrypthanks它不会走那么远,它与attr\u访问器
有关。一旦我把它取下来,一切都很好。