2010-11-18 15 views
2

In meinen Schienen 3 app, ich habe eine Route, die bis zeigt, wie während folgt Routen Rake Aufruf:Keine Route paßt Controller

topic_snippets GET /topics/:topic_id/snippets(.:format) {:action=>"index", :controller=>"snippets"} 

In routes.rb

resources :topics do 
member do 
    get 'get_topics' 
end 
resources :snippets, :only => [:index] 
end 

Meiner Ansicht I wie folgt am Referenzierung diese Route (wobei @name = "Schnipsel"):

<%= send("topic_#{@name}_path")%> 

wenn die vorhergehende Zeile ausführen, I die folgenden Routing-Fehler erhalten, n ot sicher, warum:

No route matches {:controller=>"snippets"} 

Update: fand ich eine andere Frage, deren Antworten scheinen zu implizieren, dass die oben funktionieren sollte: Dynamically construct RESTful route using Rails

Dank
Anand

+0

Aber was ist '@ topic' und vielleicht noch wichtiger, was ist die ID dieses Objekts? –

+0

Der Parameter @topic scheint irrelevant zu sein - selbst wenn ich ihn entferne, erhalte ich den gleichen Fehler. – Anand

+0

Ich habe gerade den Parameter @topic aus der Frage entfernt – Anand

Antwort

3
versucht

OK, ich fand es - Ryans Kommentar lieferte den Hinweis.

Ich war nicht vorbei in @ topic, was erforderlich ist. Wenn ich @topic entferne, versucht es nur/snippets/zu bekommen, die keine Route haben. Ich habe @topic auf ein gültiges Thema gesetzt, bevor ich diese Zeile aufruft, und es funktioniert. Danke, Ryan!

0

Haben Sie

<%= send(eval("topic_#{@name}_path"), @topic)%> 
+0

Ich habe versucht, mit eval - es gibt mir den gleichen Fehler, außer dieses Mal zeigt es mir die Position in Schienen-Code, wo der Routing-Fehler ausgelöst wurde. – Anand

Verwandte Themen