2016-08-02 25 views
0

ich einen neuen Link versuchen zu Hinzufügen eine Form zu machen für eine Join-Tabelle, gibt den Link und Fehlermeldung, dass keine Routen für die, i Schienen sind mit apiRails einen neuen Link in der Index-Seite hinzugefügt

<%= link_to("Add New Alarm/List", {:action => 'new_alarm', :controller =>'alarms'}, :class => 'action new') %> 

jede Hilfe bitte dank im Voraus

+0

verwenden. Können Sie den Fehler auch einfügen? –

Antwort

0

ich denke, Sie sollten die Alarme verwenden Routen nur in der Lage sein, Sie resources :alarms in Ihren Routen-Datei bereitstellt. Um die Routen zu überprüfen, die Sie verwenden können, können Sie rake routes ausführen.

<%= link_to "Add New Alarm/List", new_alarm_path, :class => 'action new' %> 

edit:

resources :alarms setzt die new_alarm_path, indem sie die new Methode in Ihren alarms_controller verwenden und die new.html.erb Datei in Ihrem Alarm/Ordnern. Wenn Sie die neue Methode in Ihrem Controller definiert haben und die neue HTML-Datei nur new.html.erb heißt, sollte der obige Code funktionieren, wenn Sie {:action => 'new'

+0

vielen dank für ihre antwort, aber wo den new_alarm_path zu definieren, um auf die neue aktion in der controller, und was ist, wenn ich eine neue definition in der controller, für eine neue "neue" methode zum beispiel new2 " – peterateftawfik

+0

Wenn Sie Ressourcen einrichten: Alarme, sollte es automatisch die Route für new_alarm_path einrichten, wenn Sie eine Verbindung für eine andere Methode verwenden möchten (definiert in Ihrem Alarm Controller als' new_alarm'), können Sie ' 'neuer_alarm',: controller => 'alarms'})%> 'obwohl Sie wahrscheinlich versuchen sollten, die Standardrouten (dh new_alarm_path für die neue Methode) zu verwenden, Warum willst du eine zweite neue Methode? – Rixcy

+0

zum Beispiel möchte ich eine neue Seite erstellen, die zum Beispiel einen Alarm zu einer Liste hinzufügt, aber wenn die URL http: // localhost: 3000/alarms/new2 ist, behandelt das System die URL so, als wäre es show und möchte einen Alarm mit der ID 'new2' finden und natürlich einen Fehler bekommen, dass er diese ID nicht finden konnte – peterateftawfik