Warum bekomme ich "Unbekannte Aktion Die Aktion 'zeigen' konnte nicht gefunden werden"?
Ich versuche, erstellen Sie eine Reihe von statischen Seiten für eine Rails-app. Die "über" - Seite funktioniert einwandfrei, aber wenn ich versuche mit der gleichen Methode für das "AGB" - Seite bekomme ich eine unbekannte Aktion. Ich gehe davon aus, dass dies mit meinem controller.
Dies ist meiner Strecken.rb-Datei:
resources :pages
get "pages/index"
match '/about' => 'pages#about'
match ':permalink', :controller => 'pages', :action => 'show', :as => 'about'
match '/terms' => 'pages#terms'
match ':permalink', :controller => 'pages', :action => 'show', :as => 'terms'
root :to => 'pages#index'
Mein controller sieht wie folgt aus:
class PagesController < ApplicationController
helper_method :search_performed?
def index
@search = Farm.search(params[:q])
@json = @search.result.to_gmaps4rails
end
protected
def search_performed?
params[:q].present?
end
def about
end
def feedback
end
def terms
end
end
Irgendeine Idee was Los ist???
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sie sind Missverständnis, was die parameter wie für, den beabsichtigten anpassen benannte Routen.
über den doc
ActionDispatch::Routing
Schienen entspricht Routen in der Reihenfolge von oben nach unten, so ist dies das Verhalten, das Sie sehen.
Auszug der Allgemeinen Logik zwischen Begriffen und über und über und die Begriffe, zeigen Sie Ihre eigenen controller-Aktionen.
Meinem Fall war es anders, aus oben genannten Fällen , also bin ich schreiben für den Willen zu helfen .
Ich sah den gleichen Fehler und ich verstehe, dass Fehler lag an einige routing-Probleme , während hier war meine route
Dann änderte ich die Anordnung
Meine Routen gearbeitet - Happy coding 🙂
Weil Sie nicht im create-Aktion
show
in IhremPagesController
:as => 'about'
Ihre Routen bedeutet, dass Sie dieses rufen Helfer vom code wieabout_path
oderabout_url
, aber es müssen noch:action => 'show'
match '/about' => 'pages#about'
, undmatch '/show' => 'pages#show'
dannlocalhost:3000/about
zeigt die über Sicht und dielocalhost:3000/show
zeigt die Karte anzeigen. Aber wenn ich die route:match ':permalink', :controller => 'pages', :action => 'show', :as => 'about'
nach den ersten beiden Routen, dannlocalhost:3000/show
produziert ein Routing-Fehler:No route matches {:controller=>"pages", :action=>"show"}
Warum ist das so? rake-Routen: über /über(.:format) - Seiten#zur Karte /Karte(.:format) - Seiten#show über /:permalink(.:format) - Seiten#showmatch '/show' => 'pages#show'
undmatch ':permalink', :controller => 'pages', :action => 'show'