Mysql 使用Rails进行反应-在服务器日志中回滚
我有个问题。数据库有些问题,因为在此之前我不明白迁移是怎么回事。当我运行服务器时,数据库中出现一个错误Mysql 使用Rails进行反应-在服务器日志中回滚,mysql,ruby-on-rails,reactjs,Mysql,Ruby On Rails,Reactjs,我有个问题。数据库有些问题,因为在此之前我不明白迁移是怎么回事。当我运行服务器时,数据库中出现一个错误log\u subscriber.rb:98,没有数据传输到前端,尽管在此之前一切正常。互联网上没有答案 (2.5ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC ↳ /home/vitalii/.ruby/gems/acti
log\u subscriber.rb:98
,没有数据传输到前端,尽管在此之前一切正常。互联网上没有答案
(2.5ms) SELECT "schema_migrations"."version" FROM
"schema_migrations" ORDER BY "schema_migrations"."version" ASC
↳ /home/vitalii/.ruby/gems/activerecord-
5.2.2/lib/active_record/log_subscriber.rb:98
Started POST "/tasks/" for ::1 at 2019-02-17 18:09:51 +0200
(1.2ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC
↳ /home/vitalii/.ruby/gems/activerecord-5.2.2/lib/active_record/log_subscriber.rb:98
Processing by TasksController#create as HTML
Parameters: {"title"=>"Text", "description"=>"Text", "priority"=>"1", "active"=>true, "due_date"=>"2019-02-28", "task"=>{"title"=>"Text", "description"=>"Text", "priority"=>"1", "active"=>true, "due_date"=>"2019-02-28"}}
(0.3ms) BEGIN
↳ app/controllers/tasks_controller.rb:15
(1.5ms) ROLLBACK
↳ app/controllers/tasks_controller.rb:15
Completed 200 OK in 156ms (Views: 0.9ms | ActiveRecord: 7.1ms)
我的任务控制器
class TasksController < ApplicationController
def create
@task = Task.create(task_params)
render json: @task
end
private
def task_params
params.require(:task).permit(:title, :description, :priority, :active, :due_date)
end
end
class TasksController
最有可能的是,您的任务
模型以静默方式失败。如果存在验证,并且给定的输入不满足您的验证规则,则持久化将不会成功。所以使用@task=task.create!(task\u params)
指令,该指令散列一个bang,而不是@task=task.create(task\u params)
最有效的方法是:
def创建
@任务=任务。新建(任务参数)
@任务。保存?head(:created):(render json:@task.errors)
结束
最有可能的是,您的任务
模型以静默方式失败。如果存在验证,并且给定的输入不满足您的验证规则,则持久化将不会成功。所以使用@task=task.create!(task\u params)
指令,该指令散列一个bang,而不是@task=task.create(task\u params)
最有效的方法是:
def创建
@任务=任务。新建(任务参数)
@任务。保存?head(:created):(render json:@task.errors)
结束
如果这是本地的,您可以尝试重置数据库,以便Active Record将删除数据库并运行所有迁移,这将在您的日志文件中设置schema_migrations表rake db:reset
,我看不到任何错误。最后,服务器以200状态代码响应。此外,请不要记录重复的问题。您似乎也以相同的描述@zeitnot记录了这一问题。事务已回滚,因此在任务表…active\u record/log\u subscriber中未创建任何内容。rb:98
行与错误无关。看起来您正在尝试创建无效的任务。将@task=task.create(任务参数)
更改为@task=task.create!(task_params)
(注意创建操作中的bang方法!)-您将在服务器登录中看到验证错误如果这是本地的,您可以尝试重置数据库,以便Active Record将删除数据库并运行所有迁移,这将在您的日志文件中设置schema_migrations表rake db:reset
,我看不到任何错误。最后,服务器以200状态代码响应。此外,请不要记录重复的问题。您似乎也以相同的描述@zeitnot记录了这一问题。事务已回滚,因此在任务表…active\u record/log\u subscriber中未创建任何内容。rb:98
行与错误无关。看起来您正在尝试创建无效的任务。将@task=task.create(任务参数)
更改为@task=task.create!(task_params)
(注意create操作中的bang方法create!)-您将在服务器日志中看到验证错误