Ich bin wieder, Ringen mit Schienen 3 und Routen. HierNormalisierung Params eine benannte Route in Schienen
ist das Problem:
Ich habe eine benannte Route wie diese zum Beispiel:
match '/download/artist/:artist/album/:albumName', :to => "albums#show", :as => :search, :via => :get
, die mir diesen Weg gibt: search_path
ich auch die Klassiker wie dieses: get "albums/show"
, die mir diese Route gibt: albums_show_path
.
Allerdings, wenn ich die search_path mit einigen Parametern wie folgt aus:
<%= link_to "#{result.name[0..50]}(...)", search_path(:artist =>result, :albumName => result.name), :class => "albumName" %>
, versagt es, aber nicht mit dem albums_show_path. Hier ist der Fehler:
no route matches {:controller=>"albums", :action=>"show", :artist=>"Eddie Vedder & Ben Harper", :albumName=>"My City of Ruins/My Father's House (Live) [Benefiting Artists for Peace and Justice Haiti Relief] {Digital 45}"}
ich es wahrscheinlich wissen, ist, dass der Albumname Parameter nicht entgangen ist. Aber auch nach dem Versuch, es mit CGI.escape
zu entkommen, funktioniert nicht. Ich nehme an, ich muss es in der route.rb tun, aber ich habe keine Ahnung wie.
Haben Sie eine Idee, wie es geht?
EDIT
Der Fehler sagt: keine Route Spiel usw. Wenn ich es nicht einen Parameter mit ungültigen Zeichen haben, um die Strecke zu finden.
** EDIT rake routes
**
welcome_index GET /welcome/index(.:format) {:controller=>"welcome", :action=>"index"} albums_index GET /albums/index(.:format) {:controller=>"albums", :action=>"index"} albums_show GET /albums/show(.:format) {:controller=>"albums", :action=>"show"} search GET /download/artist/:artist/album/:albumName(.:format) {:controller=>"albums", :action=>"show"} albums_show_album_info GET /albums/show_album_info(.:format) {:controller=>"albums", :action=>"show_album_info"} albums_show_itunes GET /albums/show_itunes(.:format) {:controller=>"albums", :action=>"show_itunes"} albums_show_spotify GET /albums/show_spotify(.:format) {:controller=>"albums", :action=>"show_spotify"} albums_show_carrefour GET /albums/show_carrefour(.:format) {:controller=>"albums", :action=>"show_carrefour"} root /(.:format) {:controller=>"welcome", :action=>"index"}
Was ist der Fehler? Ich sehe keinen, wirklich? – Ariejan
Ich habe einige Details hinzugefügt. Aber im Grunde ist der Fehler keine Übereinstimmung der Route. Aber es findet die Route, wenn es kein '(' zum Beispiel gibt. – Pasta
Was ist die Ausgabe von Rake-Routen? – Kezzer