2015-08-31 3 views
7

Ich habe ein Problem mit Active Admin. Hier sind die Versionen:Active Admin: Zugriff auf Seiten zum Anzeigen/Bearbeiten nicht möglich

  • Rubin '2.2.1'

  • Schienen '4.2.0'

  • activeadmin: 1.0.0.pre1

  • arbre: 1,0. 3 (in denen diese eine, weil es scheint mein Problem verknüpft wird irgendwie)

Wir haben auf Rails 4.2 aufgerüstet und mussten ActiveAdmin ebenfalls upgraden (ab 0.5). Nach ein paar Optimierungen (vor allem dem Autorisierungssystem) scheint alles in Ordnung zu sein, abgesehen von einem großen Problem: Ich kann nur auf die Indexseiten zugreifen. Wenn mit einer ID zu einer Seite gehen (zum Beispiel: "http://localhost:3000/admin/companies/2968 "), ist ich diesen Fehler:

Keine Route Streichhölzer {: action =>" Bearbeiten",: controller => "admin/Unternehmen",: format => nil,: id => # {Benutzer-ID: nil, [alle Benutzerattribute mit Nullwert]}}. Fehlende erforderliche Schlüssel: [: id]

Sieht so aus, als ob der param [: id] irgendwie in einen leeren Benutzer geändert wurde, was natürlich zum Bruch führt.

Hier ist, was ich weiß:

  • wenn ein binding.pry auf meinem Application und Inspektion der params setzen, bekomme ich {: action => "Bearbeiten",: controller => "admin/Unternehmen“,: format => nil,: id => 2968} (also hier kein Problem)

  • die Linien, die den Fehler heben sind:

active_admin/Mittel/show.html.arb

-> arbre/element/builder_method.rb # insert_tag

-> arbre/element/builder_method.rb # build_tag ​​

-> Action/actiondispatch/Reise/Formatierer # erzeugen (wenn diese Methode aufgerufen wird der path_parameters ID-Wert ist bereits beschädigt, was den Fehler verursacht)

Irgendeine Idee, warum mein ID-Parameter nicht richtig interpretiert wird/wo ich weiter schauen könnte?

EDIT >> Ich habe dies in meinem routes.rb

ActiveAdmin.routes(self) 
devise_for :admin_users, ActiveAdmin::Devise.config 

und die erzeugten Routen sehen gut mit Rechen Routen (in diesem speziellen Beispiel I admin/Unternehmen # bearbeiten admin_company GET/admin haben/Unternehmen /:id(.:format)

EDIT2 >> Falls es nicht klar war, dies für alle Seiten anzeigen passiert. Wenn ich http://localhost:3000/admin/projects/ zum Beispiel gehen, es funktioniert gut, aber http://localhost:3000/admin/projects/23815 gibt mir id = leer Benutzer auch

+0

Bitte fügen Sie die Datei 'app/admin/company.rb' zu Ihrer Frage hinzu. – scarver2

+0

Benennen Sie auch 'config/initializers/active_admin.rb' in' config/initializers/active_admin.rb.off' um und führen Sie ActiveAdmins Installationsprogramm 'bundle exec rails g active_admin: install' erneut aus, um zu sehen, ob das Problem behoben wird. Stellen Sie sicher, dass sich 'ActiveAdmin.routes (self)' in Ihrer Datei 'routes.rb' befindet. Vergewissern Sie sich außerdem in der Rails-Konsole, dass die Benutzerverknüpfung <-> des Unternehmens wie von der Fehlermeldung angezeigt funktioniert. – scarver2

+0

Thx für die Antwort. Das AA-Installationsprogramm konnte das Problem nicht lösen. Ich habe die Details für die Routen in der Post hinzugefügt. Die Firma/Benutzer-Verbindung funktioniert gut, und die admin/company.rb arbeitete vor dem Update, dieses spezielle Problem passiert tatsächlich vor sogar zu dieser Datei gehen, und für alle Modelle! Jede Admin-/Modell-/ID-Route ist unterbrochen. – BPruvost

Antwort

0

Ich erkenne dieses Problem nicht, aber 0,5 ist eine sehr alte Version. Nach meiner Erfahrung mussten wir upgrade in steps, z.B. Schienen 3.2/AA 0.6, um die Ursache verschiedener Probleme einzugrenzen.Rückblickend auf die old CHANGELOG habe ich this fix in 0.6.1 gefunden, die mit Ihrem Problem zusammenhängen könnte.