Ho riscontrato un problema con Active Admin. Qui ci sono le versioni:Amministratore attivo: impossibile accedere a mostrare/modificare pagine
ruby '2.2.1'
rotaie '4.2.0'
activeadmin: 1.0.0.pre1
arbre: 1.0. 3 (menzionando questo perché sembra essere collegato al mio problema in qualche modo)
Siamo passati alle rails 4.2 e abbiamo dovuto aggiornare anche activeadmin (da 0,5). Dopo un paio di modifiche (in particolare il sistema di autorizzazione) tutto sembra andare bene, tranne che per un grosso problema: posso accedere solo alle pagine indice. Quando si accede a una pagina con un ID (ad esempio: "http://localhost:3000/admin/companies/2968"), viene visualizzato questo errore:
Nessuna corrispondenza corrisponde a {: action => "edit",: controller => "admin/companies",: format => nil,: id => # {ID utente: nil, [tutti gli attributi utente con valore nil]}}. Chiavi richieste mancanti: [: id]
Sembra che il parametro [: id] sia stato modificato in un utente vuoto in qualche modo, il che ovviamente lo interrompe.
Ecco quello che so:
quando mettendo un binding.pry in cima alla mia ApplicationController e di ispezione delle params, ottengo {: action => "modifica",: Controller => "admin/imprese",: format => nil,: id => 2968} (quindi nessun problema qui)
le linee che sollevano l'errore sono:
active_admin/risorsa/show.html.arb
-> arbre/elemento/builder_method.rb # insert_tag
-> arbre/elemento/builder_method.rb # build_tag
-> actionpack/actiondispatch/viaggio/formattatore # generano (quando questo metodo viene chiamato , il valore ID path_parameters è già corrotto, il che solleva l'errore)
Qualche idea sul perché il mio parametro ID non è interpretato correttamente/dove potrei guardare oltre?
EDIT >> Ho questo nel mio routes.rb
ActiveAdmin.routes(self)
devise_for :admin_users, ActiveAdmin::Devise.config
E le rotte generate guardare bene con percorsi rake (in questo particolare esempio, ho admin/aziende # modificare admin_company GET/admin/aziende /:id(.:format)
EDIT2 >> Nel caso in cui non era chiaro, questo accade per tutte le pagine di spettacolo. Se vado a http://localhost:3000/admin/projects/ per esempio, funziona benissimo, ma mi dà http://localhost:3000/admin/projects/23815 id = vuoto utente pure
Per favore aggiungi il file 'app/admin/company.rb' alla tua domanda. – scarver2
Inoltre, rinomina i tuoi 'config/initializers/active_admin.rb' in' config/initializers/active_admin.rb.off' e riesegui l'installer di ActiveAdmin 'bundle exec gails_ active_admin: install' per vedere se questo risolve il problema. Assicurati che 'ActiveAdmin.routes (self)' sia nel tuo file 'routes.rb'. Inoltre, dalla console di Rails, assicurati che l'associazione utente dell'azienda <-> funzioni come suggerito dal messaggio di errore. – scarver2
Thx per la risposta. L'esecuzione dell'installazione di AA non è stata risolta. Ho aggiunto i dettagli per i percorsi nel post. L'associazione azienda/utente funziona correttamente e admin/company.rb funzionava prima dell'aggiornamento, questo particolare problema si verifica in realtà anche prima di andare a questo file e per tutti i modelli! Ogni admin/model/id route è rotto – BPruvost