为什么我的 Ruby 应用程序不将实例保存到数据库?
Why won't my Ruby app save instances to the database?
我有一个正在使用 ActiveRecord 的 Sinatra 应用程序。每当我 运行 User.create 一个实例被创建但没有 id 被保存。我试过 rake db:reset
但没有任何变化。请帮我解决这个问题!
Pry 中的示例:
pry(#<AlbumController>)> User.create
=> #<User:0x00007fffea2bed18 id: nil, name: nil, username: nil, email: nil, password_digest: nil>
需要澄清的是,这个表和其他许多表都已迁移,但仍然存在问题,但如果我能修复 User#create,那么我可能就能修复所有其他表。此外,在我今天早上检查之前,一切都很顺利。我不知道某些 Ruby 或 Visual Studio 更新是否搞砸了,所以如果有人知道,请告诉我。
此外,有关更多详细信息,您可以直接通过我的 Github Repository
查看代码
create
失败的唯一原因是验证失败,或某些中断保存的原因,例如 before_save
弹出和异常。
要找出问题所在,最简单的方法是:
User.create!
要么成功并创建用户,要么引发异常。
如果您尝试过保存,现在想进一步了解失败的原因:
user = User.create
user.persisted? # Returns true if created, false otherwise
user.errors.full_messages
哪里更容易阅读。
最常见的失败原因是验证失败,因为您跳过了必填字段。
我有一个正在使用 ActiveRecord 的 Sinatra 应用程序。每当我 运行 User.create 一个实例被创建但没有 id 被保存。我试过 rake db:reset
但没有任何变化。请帮我解决这个问题!
Pry 中的示例:
pry(#<AlbumController>)> User.create
=> #<User:0x00007fffea2bed18 id: nil, name: nil, username: nil, email: nil, password_digest: nil>
需要澄清的是,这个表和其他许多表都已迁移,但仍然存在问题,但如果我能修复 User#create,那么我可能就能修复所有其他表。此外,在我今天早上检查之前,一切都很顺利。我不知道某些 Ruby 或 Visual Studio 更新是否搞砸了,所以如果有人知道,请告诉我。
此外,有关更多详细信息,您可以直接通过我的 Github Repository
查看代码create
失败的唯一原因是验证失败,或某些中断保存的原因,例如 before_save
弹出和异常。
要找出问题所在,最简单的方法是:
User.create!
要么成功并创建用户,要么引发异常。
如果您尝试过保存,现在想进一步了解失败的原因:
user = User.create
user.persisted? # Returns true if created, false otherwise
user.errors.full_messages
哪里更容易阅读。
最常见的失败原因是验证失败,因为您跳过了必填字段。