2016-04-27 3 views
0

Ich habe einige Probleme mit einer Funktion Ajax. Ich habe einen Fehler 500 vom Server erhalten.Schienen Ajax-Request Zurückkehren nicht gefunden, aber Reglerfunktion existiert

Die Ajax-Funktion wie folgt aussieht:

$.ajax({ 
    type: "POST", 
    url: "<%= url_for(:controller => "movies", :action => "test") %>", 
    data: {inputtag: tag } 
    }) 

In meinen Filmen Controller, ich habe diese Funktion

# Fügt dem Video einen Tag hinzu 
def test 
    @tag = Tag.new 
    if request.post? 
     @tag.update_attributes(params[:inputtag]) 
     if @tag.save 
     redirect_to :back 
     else 
     redirect_to :back 
     end 
    end 
    end 

Also, ich weiß nicht, warum ich diesen Fehler habe:

http://lvh.me/movies/test 500 (Internal Server Error) 
+0

Können Sie den tatsächlichen Ruby-Fehler posten, den Sie bekommen? –

+0

URL tritt aus diesem Grunde uR 500 Fehler auftreten, jetzt den genauen Fehler einfügen, die u –

+0

r zugewandt Sollte die Zeichenfolge Einfügung nicht '<% ​​=' mit '% end>', nicht '=>'? – CBusBus

Antwort

0

Sie vermissen den Eintrag in Ihrem routes.rb Datei

resources :movies do 
    collection do 
    get 'test' 
    end 
end 
0

500 Status nicht über Routing. Überprüfen Sie Ihre Controller-Aktion, insbesondere dies.

@tag.update_attributes(params[:inputtag])

Sie versuchen, einen Datensatz zu aktualisieren, die nicht existiert, und Sie sind die starken Parameter von Rails nicht richtig verwendet wird. Versuchen Sie es stattdessen.

def test 
    @tag = Tag.create tag_params 
    redirect_to :back 
    end 

    private 

    # If your tag model looks like: Tag(id: integer, inputtag: string) 
    def tag_params 
    params.require(:tag).permit(:inputtag) 
    end 
Verwandte Themen