rails和ajax请求404错误

时间:2017-01-27 09:00:41

标签: jquery ruby-on-rails ruby ajax

我的rails日志中出现此错误:

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'

我不明白为什么,这是代码:

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') %>");

有人可以帮助我吗?

修改

common_content方法:

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

1 个答案:

答案 0 :(得分:2)

common_content方法的第一行,我们可以看到:

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

因为该代码的第一部分(||之前)返回nil,所以执行第二部分,即:

    raise(ActionController::RoutingError.new('Not Found')

因此没有找到School记录,因此提出了404。