我尝试寻找答案,但他们都在使用User.new等而不是创建。
在具有有效属性的控制台中使用User.create()时,我得到的用户使用nil表示ID,nil表示时间戳。
这是我的用户模型。
User.create(username:"oiuedhioj", email:"damhan@dagr.com",password:"test",password_confirmation:"test")
在rails控制台中我正在使用
<User id: nil, username: "Damhan", email: nil, created_at: nil, updated_at: nil, password_digest: "$2a$10$oGtRgcHigaHh/UCVX4QdM.AOgyGur8Oud5MyKZheUcQ...">
回来
token.id
答案 0 :(得分:2)
尝试在rails控制台中创建。
返回没有Id或时间戳的记录是无效记录的标志。
user = User.create(...)
user.valid?
=> false
user.errors.any?
=> true
答案 1 :(得分:0)
您只将name
和email
设置为可写。在该列表中包含id
和其他属性。或者如果您的rails版本是4+,请在控制器中使用strong parameters。
#user_controller.rb
...
private
def user_params
params.require(:user).permit(:id, :name, :email ... )
end
...
答案 2 :(得分:0)
除了您已经获得的提示之外,还可以使用create!
和save!
等代替其补充来获取错误异常,从而快速失败并因此更容易调试代码。如果您有充分的理由,请仅使用不含!
的变体。因为你必须手动检查错误,所以有适当的例外通常会更加清晰。