0

我正在使用 active_admin 0.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

现在,每当我调用 index 操作时,一切正常。当我发布到会员操作 :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"是一种赠品。

您需要将authenticity_token 作为参数添加到ajax 上传请求以使Devise 满意。

我仍然希望 Devise 能够就详细发生的事情给出更详细的提示。

于 2013-02-14T13:58:39.627 回答