在rails中的activeadmin中的default_actions不会使“删除”按钮创建销毁链接

时间:2011-09-12 15:42:51

标签: ruby-on-rails routes activeadmin

我有这个:

ActiveAdmin.register User do
  index do
    column :email
        column :name
    column :role
    column "Last Sign In", :last_sign_in_at
        column :account
        column "Units" do |user|
            user.units.count.to_s
        end
    default_actions
end

default_actions方法应创建显示,编辑和删除链接。它显示了它们,但删除链接只是show动作的链接:

admin/users/1

规格说它应该创建一个删除链接。

不知道为什么会这样做。所以我尝试了另一种选择:

 column "Delete" do |user|
   link_to "Delete", destroy_admin_user_path(user)
 end

我收到此错误:

undefined method `destroy_admin_user_path' for <div class="index_as_table"></div>:ActiveAdmin::Views::IndexAsTable

我甚至尝试在路线中添加它:

match "/admin/users/:id/destroy(.:format) " => "admin/users#destroy"

仍有同样的错误。

我在application.html.haml中包含了这个:

        = javascript_include_tag :all

仍然与上述问题相同。

感谢您的回复

3 个答案:

答案 0 :(得分:8)

这有点晚了,但真正的原因是你的链接无法正常工作是因为你没有在你的链接中放入:method而是使用了“destroy_admin_user_path”。

请改为尝试:

link_to "Delete", admin_user_path(user), :method => :delete, :data => {:confirm => "Are you sure?"}

这适用于我,使用ActiveAdmin。

答案 1 :(得分:3)

您是否检查过将完整的rails.js添加到javascript中?使用firebug检查链接并查看它是否具有data-method属性。还检查HTTP标头并查看是否使用DELETE发出请求。

如果请求不是使用“DELETE”而不是您的javascripts有问题。检查rails.js以确保完整性和jquery集成。另外检查您的资产。

您可以提供有关rails版本的更多详细信息吗? Javascripts包含在HTML源代码中?

尝试另一件事,转到assets / javascripts / application.js并添加

// = require jquery

如果你正在运行3.1

答案 2 :(得分:3)

当我更新active_admin gem时遇到了这个问题,所以我修复了它重新生成active_admin资产,现在destroy操作正常。

rails generate active_admin:assets