0

active_admin0.5.1を使用してRailsアプリを構築しています。

app / admin / Plays.rbで、次のような管理リソースを定義しました。

ActiveAdmin.register Play do

  member_action :upload, :method => :post do
    ...
  end

  def index
    ...
  end

end

ここで説明されているように、非標準のアップロードアクションを追加したことに注意してください:http://activeadmin.info/docs/8-custom-actions.html

これで、インデックスアクションを呼び出すたびに、すべてが正常に機能します。メンバーアクション:uploadに投稿すると、401応答が返されます。

Started POST "/admin/plays/1/upload.js" for 127.0.0.1 at 2013-02-13 18:46:36 +0100
Processing by Admin::PlaysController#upload as JS
  Parameters: {...}
WARNING: Can't verify CSRF token authenticity
  AdminUser Load (0.4ms)  SELECT "admin_users".* FROM "admin_users" WHERE "admin_users"."id" = 1 LIMIT 1
   (0.1ms)  begin transaction
   (0.0ms)  commit transaction
Completed 401 Unauthorized in 7ms

さらに、このエラーが発生した後、管理者ユーザーはログアウトされます。

ここで何が欠けていますか?member_actionで定義されたアクションは、標準のアクションと同じように機能することを期待していました。

4

1 に答える 1

1

理由を見つけました。

"WARNING: Can't verify CSRF token authenticity"一種の景品です。

Deviseを満足させるには、authenticity_tokenをパラメーターとしてajaxアップロードリクエストに追加する必要があります。

Deviseが、何が起こったのかについて、より詳細なヒントを与えてくれたらと思います。

于 2013-02-14T13:58:39.627 に答える