default_actions in activeadmin in rails não faz com que o botão “delete” crie um link de destruição
-
29-10-2019 - |
Pergunta
Eu tenho isso:
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
O método default_actions deve criar os links mostrar, editar e excluir.Ele os mostra, mas o link de exclusão é apenas um link para a ação de exibição:
admin/users/1
As especificações indicam que deve ser criado um link de exclusão.
Não sei por que fez isso.Então, tentei uma alternativa:
column "Delete" do |user|
link_to "Delete", destroy_admin_user_path(user)
end
Eu recebo este erro:
undefined method `destroy_admin_user_path' for <div class="index_as_table"></div>:ActiveAdmin::Views::IndexAsTable
Eu até tentei adicionar isto nas rotas:
match "/admin/users/:id/destroy(.:format) " => "admin/users#destroy"
Ainda obteve o mesmo erro.
Eu incluí isso em application.html.haml:
= javascript_include_tag :all
Ainda os mesmos problemas acima.
Obrigado pela resposta
Solução
Você verificou se o rails.js completo foi adicionado ao javascript?Use o firebug para inspecionar o link e veja se ele tem o atributo data-method.Inspecione também os cabeçalhos HTTP e veja se a solicitação é feita com DELETE.
Se a solicitação não for feita usando "DELETE", você tem um problema com seus javascripts.Verifique rails.js para integridade e integração jquery.Além disso, verifique seus ativos.
Você poderia fornecer mais detalhes sobre a versão do seu rails?Javascripts incluídos no código-fonte HTML?
Tente outra coisa, vá para assets / javascripts / application.js e adicione
//= requer jquery
para o topo se você estiver executando 3.1
Outras dicas
Já é um pouco tarde, mas o motivo real do motivo pelo qual seu link não estava funcionando é porque você não colocou o método: em seu link e, em vez disso, usou "destroy_admin_user_path".
Tente isto em vez:
link_to "Delete", admin_user_path(user), :method => :delete, :data => {:confirm => "Are you sure?"}
Isso é o que funciona para mim, com ActiveAdmin.
Tive esse problema quando atualizei a gem active_admin, então corrigi-lo regenerando os ativos active_admin e agora a ação de destruição funciona bem.
rails generate active_admin:assets