2017-01-27 3 views
1

Ich habe diesen Fehler auf meiner Schienen-Protokolle:Schienen und Ajax-Request 404 Fehler

Completed 404 Not Found in 11ms 
** [Raven] User excluded error: #<ActionController::RoutingError: Not Found> 

ActionController::RoutingError (Not Found): 
    app/controllers/schools_controller.rb:6:in `common_content' 

Ich verstehe nicht, warum, hier ist der Code:

Show.html.erb

<%= link_to "Vérifiés (#{@count_verified})", rate_verified_path, remote: true %> 

routes.rb

get '/rate_verified' => 'schools#verified_rating' 

schools_controller.rb

before_filter :common_content, :only => [:show, :verified_rating] 

def verified_rating 
    @selected = @ratings.where(:verified => true) 
    respond_to do |format| 
    format.js 
    end 
end 

verified_rating.js.erb

$('#verifie').html("<%= escape_javascript render(:partial => 'rating') %>"); 

Hat mir jemand helfen könnte?

EDIT

die common_content Methode:

def common_content 
    @school = School.where(city_namespace: params[:city], title_namespace: params[:title]).first || raise(ActionController::RoutingError.new('Not Found')) 
    @rating = Rating.new(params[:rating]) 
    @rating.school_id = @school.id 
    @ratings = @school.ratings.desc(:created_at) 
end 
+0

Wie sieht die Methode ': common_content' aus? Kannst du es Code zeigen? – maicher

Antwort

2

In erster Linie von common_content Methode, können wir sehen:

School.where(city_namespace: params[:city], title_namespace: params[:title]).first || raise(ActionController::RoutingError.new('Not Found')) 

da der erste Teil (vor ||) derjenigen Code zurück nil der zweite Teil wird ausgeführt, der ist:

So wird der 404 ausgelöst, weil kein School Datensatz gefunden wurde.

+0

Wie kann ich einen Datensatz zur Verfügung haben? –

+0

Ich verstehe nicht, weil, wenn ich '<% = @ school.title%>' in der Ansicht, habe ich eine Antwort, aber warum habe ich eine 'nil' Antwort in der: common_content-Methode? –

+0

Das bedeutet, dass Sie den School-Datensatz in der Datenbank haben. Übergeben Sie "city" und "title" params an die Ajax-Anfrage, damit sie gefunden werden kann. – maicher