default_actions в activeadmin в rails не делает кнопку "удалить" создать ссылку уничтожить - PullRequest
3 голосов
/ 12 сентября 2011

У меня есть это:

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 ]

8 голосов
/ 04 ноября 2012

Это немного поздно, но реальная причина, по которой ваша ссылка не работает, состоит в том, что вы не добавили метод: в свою ссылку и вместо этого использовали "destroy_admin_user_path".

Попробуйте вместо этого:

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

Это то, что у меня работает, с ActiveAdmin.

3 голосов
/ 02 июня 2012

У меня возникла эта проблема, когда я обновил гем active_admin, поэтому я исправил его, восстанавливая активы active_admin, и теперь действие уничтожения работает нормально.

rails generate active_admin:assets
3 голосов
/ 13 сентября 2011

Вы проверяли, добавлен ли полный файл rails.js в javascript? Используйте firebug, чтобы проверить ссылку и посмотреть, имеет ли она атрибут data-method. Также проверьте заголовки HTTP и посмотрите, сделан ли запрос с помощью DELETE.

Если запрос сделан не с помощью «УДАЛИТЬ», то у вас есть проблема с вашими javascripts. Проверьте rails.js на целостность и интеграцию с jquery. Дополнительно проверьте свои активы.

Не могли бы вы предоставить более подробную информацию о вашей версии рельсов? Javascripts, включенный в источник HTML?

Попробуйте другую вещь, перейдите в assets / javascripts / application.js и добавьте

// = требуется jquery

наверх, если вы используете 3.1

...