【发布时间】:2013-08-01 18:53:15
【问题描述】:
我从 Github 克隆了一个包含 Rails 应用程序的远程存储库,但在尝试创建对象并将其保存到数据库时遇到了不熟悉的错误。
我已经制作了一个注册表单来创建一个新用户(此处称为 Mentor),而不是在提交时创建,我收到所有字段都是空白的错误,当我检查服务器日志时,我看到这个而不是普通的INSERT INTO(也可以在rails控制台中使用Mentor.create):
(0.1ms) begin transaction
Mentor Exists (0.2ms) SELECT 1 AS one FROM "mentors" WHERE "mentors"."email" IS NULL LIMIT 1
(0.1ms) rollback transaction
我已经运行了rails new ~/cloned_repo,所以应该已经创建了所有必需的 rails 文件。
非常感谢任何帮助。谢谢!
使用控制器代码更新:
def new
@mentor = Mentor.new
end
def create
@mentor = Mentor.new(params[:Mentor])
if @mentor.save
session[:mentor_id] = @mentor.id
redirect_to root_url, notice: "Thank you for signing up!"
else
render "new"
end
end
【问题讨论】:
-
分享您的一些
mentors_controller.rb代码可能会有所帮助。此外,由于 Mentor 的电子邮件地址已经存在,因此正在发生回滚。您必须验证电子邮件是唯一的,并且表中的项目具有相同的电子邮件地址。 -
当我在 rails 控制台中调用
Mentor.all时,我得到一个空数组。由于这个问题,我还没有在应用程序中创建任何数据。 -
尝试将
params[:Mentor])更改为params[:mentor]。 -
啊!愚蠢的错误。看起来它现在正在走得更远,但它仍然失败
SQLite3::BusyException: database is locked
标签: sql ruby-on-rails ruby ruby-on-rails-3 github