default_actions in activeadmin in rails não faz com que o botão “delete” crie um link de destruição

StackOverflow https://stackoverflow.com/questions/7390470

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

Foi útil?

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
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top