2012-04-15 12 views
1

Ich bin ziemlich neu in Schienen und grundsätzlich möchte ich ein Benutzerregistrierungsformular machen.Schienen Routen auf der Suche nach Show-Aktion

Ich bin derzeit mit Schienen 3.2.3

Grundsätzlich möchte ich für Anwender grundlegende Routen wie Benutzer/registrieren oben auf Basis REST Route machen.

Hier mein routes.rb

resources :user do 
    collection do 
    get 'register' 
    end 
end 

sind und hier meine Harke Routen sind:

 register_user_index GET /user/register(.:format) user#register 
    user_index GET /user(.:format)   user#index 
       POST /user(.:format)   user#create 
     new_user GET /user/new(.:format)  user#new 
     edit_user GET /user/:id/edit(.:format) user#edit 
      user GET /user/:id(.:format)  user#show 
       PUT /user/:id(.:format)  user#update 
       DELETE /user/:id(.:format)  user#destroy 

Von meinem Verständnis, da Benutzer registrieren auf der Show ist, sollte es zuerst mit Register übereinstimmen bevor ich zeige.

aber wenn ich versuche, localhost zu tun: 3000/user/registrieren, es gibt mir diese Fehlermeldung:

Keine Route Streichhölzer {: action => "show",: controller => "Benutzer"}

Kann mir jemand dabei helfen?

Danke !!

+0

Haben Sie eine Ansicht für Benutzer # registrieren Sie sich noch? Wenn ja, können Sie den Inhalt posten? –

+0

Sind Sie sicher, dass es irgendwo keinen Tippfehler gibt? Selbst wenn es die "Register" -Route vermisst, warum würde es dann sagen, dass Sie keine "Show" -Route haben? Es ist genau da! Hast du Probleme mit anderen Routen? – tsherif

Antwort

1

(ich würde dies ein Kommentar, aber ich brauche die Markup für das Codebeispiel.)

Ich habe versucht, Ihre Routen mit Rails 3.1.4 und es funktionierte wie erwartet.

Ich bemerke, dass Sie eine Zeichenfolge anstelle eines Symbols verwenden. Der Standardweg ist:

resources :users do 
    collection do 
    get :register 
    end 
end 
+0

Und ich habe auch mit dem Symbol geändert. Ich weiß nicht, ob es einen Unterschied macht. – user1334345

0

Haben Sie Ihre Ressource falsch geschrieben? Es ist normalerweise Plural, users. Aber das ist nicht der Punkt - es ist nur eine Konvention. Der Punkt ist, dass Sie wahrscheinlich einen Controller namens UsersController erstellt haben und dieser Controller nicht Ihrem Ressourcennamen folgt. Überprüfen Sie es, oder nennen Sie es UserController. Aber ich würde Sie nicht tun, wird dringend empfohlen - wenn Sie /user Pfad benötigen, verwenden Sie einfach die Option :path mit Ihrer Ressource und Sie werden fein:

resources :users, path: 'user' do 

Noch einmal, wenn es nicht zu spät ist, Verwenden Sie nur:

resources :users do 

Und Ihr Registrierungsweg wird /users/register sein.

+0

Vielen Dank! Es funktionierte!! Ich denke es ist Konventionssache. – user1334345