2016-10-10 10 views
0

Ich habe ein Kontaktformular, das funktioniert, wenn ich die Formularseite von selbst über die URL laden. Jetzt habe ich die Seite neu gestaltet und das Formular wird jetzt in einer Seitenleiste gerendert und ich bekomme einen Buchungsfehler, wenn ich den Submit Button innerhalb der Sidebar drücke.Sidebar Form - Keine Route entspricht [POST]

Jetzt, wenn ich die Formularseite mit der URL laden die Seitenleiste funktioniert so lange wie ich auf der Formularseite bleibe, sobald ich die Seiten ändere die Seitenleiste Formular wird die 'No routes matches [Post]' Fehler erneut, wenn ich treffe der Absenden-Button

Jede Hilfe würde sehr geschätzt werden!

Scott

Rails.application.routes.draw do 

    root 'static_pages#index' 


    get 'home' => 'static_pages#index' 

    get 'video' => 'static_pages#video' 

    get 'help' => 'static_pages#help' 

    get 'about' => 'static_pages#about' 

    get 'services' => 'static_pages#services' 

    get  'accordion' => 'static_pages#accordion' 

    get 'social' => 'static_pages#social' 

    get '/messages' => 'messages#new' 
    post '/messages' => 'messages#create' 



end 

Messages_Controller 

class MessagesController < ApplicationController 

    def new 
    @message = Message.new 
    end 

    def create 
    @message = Message.new(message_params) 

    if @message.valid? 
     MessageMailer.new_message(@message).deliver 
     flash[:notice] = "Your Messages Has Been Sent." 
     redirect_to messages_path 
    else 
     flash[:alert] = "Please Fill in All of the Fields." 
     render :new 
    end 

end 

private 

    def message_params 
    params.require(:message).permit(:name, :email, :subject, :content) 
    end 
end 

Antwort

0

ich dies so ziemlich herausgefunden.

wickelte ich meine Form in einem form_tag Helfer wie folgt aus:

<%= form_tag("messages", method: "post", :class => "my-styles") do %> 
...my form here... 
<% end %> 

und gelöst, um die "Keine Routen Spiel POST Ausgabe

dann auf der gleichen Seite zu bleiben, nachdem das Formular absenden. Informationen geändert ich die MessagesController redirect_to (: zurück) wie folgt aus:

class MessagesController < ApplicationController 


def new 
@message = Message.new 
end 


def create 
@message = Message.new(message_params) 

if @message.valid? 
    MessageMailer.new_message(@message).deliver 
    flash[:notice] = "Your Messages Has Been Sent." 
    redirect_to(:back) 

else 
    flash[:alert] = "Please Fill in All of the Fields." 
    redirect_to(:back) 

end 

end 


private 

def message_params 
    params.require(:message).permit(:name, :email, :subject, :content) 
end 

end 

Dank der Stapel Überlauf Gemeinschaft, wie ich gerade über alles gesammelt habe, was es brauchte, um dies aus genau diesen Seiten herauszufinden.

Dank Alle,

Scott

Verwandte Themen