ActiveAdmin member_action提供401 Unauthorized响应

时间:2013-02-13 17:58:55

标签: ruby-on-rails-3.2 activeadmin

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

现在每当我调用索引动作时,一切正常。当我发布成员动作时:虽然上传,我得到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定义的动作就像标准动作一样。

1 个答案:

答案 0 :(得分:1)

找到原因。

"WARNING: Can't verify CSRF token authenticity"是一种赠品。

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

我仍然希望Devise会对发生的事情提供更详细的暗示。