Rails: Warum funktioniert die benutzerdefinierte url ändern, wenn "render " neue" heißt?

Ich habe einen controller, der steuert, ein Kontakt-Formular auf der Kontakt-Seite. Innerhalb der routes.rb - Datei habe ich eine Zeile, die sagt match '/contact', :to => 'feedback#new'. Nun, wenn das Formular richtig ausgefüllt ist, funktioniert alles einwandfrei; die url ist "/Kontakt". Jedoch, wenn das Formular nicht korrekt ausgefüllt, mein controller renders 'new' und die url ändert sich von '/contact' zu '/feedback'. Kann mir jemand sagen warum das passiert und wie ich es beheben kann, so dass, wenn die Validierungen ausgelöst werden und die Seite gerendert wird, wird die url /contact noch und nicht /feedback? Danke!

Meine controller-code:
Rails: Warum funktioniert die benutzerdefinierte url ändern, wenn

  • Können Sie die Inhalte Ihrer config/routes.rb - Datei? Bearbeiten Sie Die anzeigen-code würde natürlich auch helfen. Wenn Sie form_for(@feedback), wenn die form Beiträge, es tut einen BEITRAG zu /feedback da Schienen verwendet RESTful URLs. Denken Sie daran, dass die URLs basieren auf den Routen von Controller und Aktionen, NICHT den Namen der Ansicht, du bist rendering. FeedbackController#create ist wahrscheinlich zugeordnet /feedback (check rake routes)
  • Du hast Recht FeedbackController#create zugeordnet ist /feedback route. Was soll ich also tun, um Antwort auf meine obige Frage?
  • Haben Sie jemals herausfinden? Ich bin mit diesen zu kämpfen.
  • Ja und Nein. Ich fand, dass, wenn Sie den Titel in die create-action des Controllers, beim Rendern aufgerufen wird, die url wird noch festgelegt werden, was Sie wollen; ich bin jedoch nicht sicher, ob dies ist, wie es ist, angenommen zu werden, oder wenn es nur ein quick-fix. Ich weiß immer noch nicht, warum dies geschieht.
  • Ich bin Einstellung @Titel in meinem schaffen, aber es ist noch nicht zu helfen. Können Sie code bereitstellen? Vielen Dank für immer zu mir zurück.
Schreibe einen Kommentar