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!)-您将在服务器日志中看到验证错误