Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 无法更新表特定实例的状态,因为正在进行回滚_Ruby On Rails_Ruby_Methods_Rollback - Fatal编程技术网

Ruby on rails 无法更新表特定实例的状态,因为正在进行回滚

Ruby on rails 无法更新表特定实例的状态,因为正在进行回滚,ruby-on-rails,ruby,methods,rollback,Ruby On Rails,Ruby,Methods,Rollback,我有一个列状态为的表订阅。在我的订阅控制器中,我有一个方法accept\u player,用于将订阅状态更新为“已确认!” 不幸的是,每次我尝试触发该方法时,似乎都会发生回滚: Started POST "/accept_player/39" for ::1 at 2015-07-08 22:01:21 +0100 ActiveRecord::SchemaMigration Load (12.4ms) SELECT "schema_migrations".* FROM "schema_mi

我有一个列状态为的表订阅。在我的订阅控制器中,我有一个方法
accept\u player
,用于将
订阅状态更新为
“已确认!”

不幸的是,每次我尝试触发该方法时,似乎都会发生回滚:

Started POST "/accept_player/39" for ::1 at 2015-07-08 22:01:21 +0100
  ActiveRecord::SchemaMigration Load (12.4ms)  SELECT "schema_migrations".* FROM "schema_migrations"
/Users/davidgeismar/code/davidgeismar/tennis-match/app/controllers/subscriptions_controller.rb:141: warning: duplicated key at line 155 ignored: "CardType"
Processing by SubscriptionsController#accept_player as HTML
  Parameters: {"utf8"=>"✓", "authenticity_token"=>"aas8OPHBpvPwNbbmx/SVipsRM+eKo63nuVilMroxKcU9HRVonjSqEuH7aLY91gFi9PHMUsUqRqk7qhnv2m4L/A==", "subscription_id_accept_player"=>"39", "commit"=>"Confirmer ce Joueur", "subscription_id"=>"39"}
  User Load (13.3ms)  SELECT  "users".* FROM "users" WHERE "users"."id" = $1  ORDER BY "users"."id" ASC LIMIT 1  [["id", 2]]
  Subscription Load (11.6ms)  SELECT  "subscriptions".* FROM "subscriptions" WHERE "subscriptions"."id" = $1 LIMIT 1  [["id", 39]]
   (5.7ms)  BEGIN
  Subscription Exists (0.8ms)  SELECT  1 AS one FROM "subscriptions" WHERE ("subscriptions"."user_id" = 20 AND "subscriptions"."id" != 39 AND "subscriptions"."tournament_id" = 9) LIMIT 1
   (12.6ms)  ROLLBACK
  Tournament Load (2.4ms)  SELECT  "tournaments".* FROM "tournaments" WHERE "tournaments"."id" = $1 LIMIT 1  [["id", 9]]
  User Load (0.4ms)  SELECT  "users".* FROM "users" WHERE "users"."id" = $1 LIMIT 1  [["id", 2]]
Redirected to http://localhost:3000/tournaments/9/subscriptions
Completed 302 Found in 246ms (ActiveRecord: 79.7ms)
关于这里可能出现的问题有什么想法吗?

以下代码:

authorize @subscription
可能是导致回滚的原因。如果您处于开发模式,只需将其注释掉,
reload,并尝试手动添加记录,查看是否是原因。

此代码:

authorize @subscription

可能是导致回滚的原因。如果您处于开发模式,只需将其注释掉,
reload
,并尝试手动添加记录,看看这是否是原因。

授权订阅
来自pundit gem。我还认为这可能是导致回滚的原因。我照你说的做了,但回滚仍在进行。
授权订阅
来自权威gem。我还认为这可能是导致回滚的原因。我照你说的做了,但是回退仍然发生。