2016-07-01 10 views
0

Ich erhalte die folgenden FehlerKeine Route paßt Fehler in Rails

Keine Route Streichhölzer {: action => "index", : controller => "Modul/admin/Aufträge"}

wenn folgende Verwendung:

<%= form_tag({ :action => :index}, { :method => "get" }) do %> 

Meine Strecken haben diesen Weg:

Ich habe versucht, diesen Code in rails console laufen und es funktioniert ohne Fehler:

r.url_for :controller => 'module/admin/orders', :action=> :index, :id=>42 
=> "http://domain.com/new/admin/orders?id=42" 

r.url_for :controller => 'module/admin/orders', :action=> :index 
=> "http://domain.com/new/admin/orders" 

Meine Anwendung Spree verwendet, und dieser Controller erbt Spree::Admin::ResourceController Klasse

+0

'url_for' wird die formatierte URL unabhängig von der Methode zurück. Der 'form_tag', den Sie angegeben haben, verwendet explizit 'get', also die Route, nach der gesucht werden soll. Haben Sie verifiziert, dass Ihre Route eine Semantik "bekommen" (nicht "nach") hat? Sie können auch den relevanten Teil Ihrer 'Rake-Routen' hinzufügen. –

+0

Ich bin sicher, dass dieser Pfad Semantik bekommen hat. Teil der Rake Routen ist oben angebracht und Code, der in der Konsole funktioniert – kaz

+0

ich denke es ist, weil Schienen versucht, diese Route in Spree-Engine irgendwie zu finden – kaz

Antwort

0

Die Antwort besteht darin, die Routenkonfiguration in den gleichen Motorcontroller zu übertragen (zB Spree in diesem Fall):

Spree::Core::Engine.add_routes do scope 'module/' do namespace :admin, as: 'module_admin' do resources :orders, controller: '/module/admin/orders', only: [:edit, :index, :update] end end

und Verwendung:

<%= form_tag(module_admin_orders_path, method: :get) %>

oder URL-Helfer mit Motor-Präfix verwenden:

<%= form_tag(main_app.admin_orders_path, method: :get) %>

0

Benutzer die richtige URL Helfer ass folgt

<%= form_tag(admin_orders_path, method: :get) %> 
Verwandte Themen