0

これは私が一番下にたどり着けないものです:

私は ActiveAdmin を使用しており、ユーザー用のタブがあります (Devise を使用)。長い間、すべてが完璧に機能していました。それから今日、ユーザーの 1 人を見に行ったところ、何らかの理由で、クリックしたユーザーのアカウントではなく、私のユーザー アカウントが表示されていることに気付きました。ショーページも試してみましたが、同じ結果でした。これは、すべてのユーザーに対して行われます。これがいつ始まったのかはわかりません...今日まで、かなり長い間、これらのアクションのいずれもクリックしていませんでした...少なくとも数週間。しかし要点は、私は何かをしたにちがいないということです。

/admin/users/153 にアクセスした後にログを確認したところ、次のことがわかりました。

Parameters: {"id"=>"153"}
  User Load (0.6ms)  SELECT "users".* FROM "users" WHERE "users"."id" = 2 LIMIT 1
  AdminUser Load (0.5ms)  SELECT "admin_users".* FROM "admin_users" WHERE "admin_users"."id" = 3 LIMIT 1

paramsハッシュ(153)のユーザーID(2)ではなく、ユーザーID(2)を選択しています。私は ActiveAdmin で何も変更していません。また、私の知る限りでは、それを妨げるものは何も使用していません...だから困惑しています。

何かご意見は?

4

1 に答える 1

1

私の答えがあなたを助けるかどうかはわかりませんが、私は同様の問題に直面しました。私の場合、application_controllerに@challengeを設定し、任意のコントローラーのどこからでも使用できるようにしました。この問題は、アクティブな管理者がチャレンジレコードを編集したときに発生し、以前に設定した@challengeが更新されました。これを理解するのに数時間かかりましたが、クラス変数を共有しているからだとわかりました。

于 2012-09-16T14:40:50.100 に答える