我有这个:
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
仍然与上述问题相同。
感谢您的回复
答案 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