Как я могу исправить ActiveAdmin 'Изменить' маршрут действия, который, кажется, не работает - PullRequest
0 голосов
/ 27 октября 2019

Я только что создал активную панель администратора, и все, кажется, работает, но при создании нового пользователя администратора я получил ошибку URLGeneration, хотя пользователь создается при возврате к панели мониторинга. Та же самая ошибка возникает, когда я пытаюсь «просмотреть» только что созданного пользователя или любого пользователя, включая администратора по умолчанию. То же самое происходит, когда я нажимаю на «Id» пользователей с правами администратора.

(Ошибка)

     ActionController::UrlGenerationError in Admin::AdminUsers#show

showing .../bundler/gems/activeadmin-b9f189ff671a/app/views/active_admin/resource/show.html.arb where line #2 raised:

 No route matches {:action=>"edit", :controller=>"admin/admin_users", :id=>#<User id: nil, email: "", created_at: nil, updated_at: nil, name: nil, provider: nil, uid: nil, image: nil>}, possible unmatched constraints: [:id]

(config / rout.rb)

Rails.application.routes.draw do
 devise_for :admin_users, ActiveAdmin::Devise.config
 ActiveAdmin.routes(self)

(models / admin_user.rb)

class AdminUser < ApplicationRecord
 devise :database_authenticatable, 
     :recoverable, :rememberable, :validatable
end

Административный файл:

(admin / admin_users.rb)

ActiveAdmin.register AdminUser do
  permit_params :email, :password, :password_confirmation

  index do
    selectable_column
    id_column
    column :email
    column :current_sign_in_at
    column :sign_in_count
    column :created_at
    actions
  end

  filter :email
  filter :current_sign_in_at
  filter :sign_in_count
  filter :created_at

  form do |f|
    f.inputs do
      f.input :email
      f.input :password
      f.input :password_confirmation
    end
    f.actions
  end

end

(admin / dashboard.rb)

ActiveAdmin.register_page "Dashboard" do

  menu priority: 1, label: proc{ I18n.t("active_admin.dashboard") }

  content title: proc{ I18n.t("active_admin.dashboard") } do
    div class: "blank_slate_container", id: "dashboard_default_message" do
      span class: "blank_slate" do
        span I18n.t("active_admin.dashboard_welcome.welcome")
        small I18n.t("active_admin.dashboard_welcome.call_to_action")
      end
    end

  end # content
end

1 Ответ

0 голосов
/ 28 октября 2019
No route matches {
 :action=>"edit", 
 :controller=>"admin/admin_users", 
 :id=>#<User id: nil, email: "", created_at: nil, updated_at: nil, name: nil, provider: nil, uid: nil, image: nil>
}, possible unmatched constraints: [:id]

Я прочитал выше, что маршрут edit ожидает идентификатор, но вместо этого получает неверное значение. Объединение этого с этим

ActionController::UrlGenerationError in Admin::AdminUsers#show

и с вашим описанием того, что вы сделали, приводит меня к мысли, что есть проблема с тем, как edit ссылки генерируются в showview.

Можете ли вы обновить свой вопрос, чтобы включить представление ActiveAdmin "show"? Также было бы полезно включить файл ресурсов ActiveAdmin (должен быть в app/admin).

...