我正在尝试运行一个 AJAX 请求,该请求获取分页链接索引并根据请求返回下一组分页链接,但是当滚动到页面底部时发出请求时,我收到此错误。
xhr.send( ( options.hasContent && options.data ) || null );
根据下面的查询参数,该请求似乎试图获取链接的第二页,但返回 500 错误。
http://localhost:3000/links?page=2&_=1451357800871
Rails 日志错误
ActionView::Template::Error (Missing partial links/_link with {:locale=>[:en], :formats=>[:js, "application/ecmascript", "application/x-ecmascript", :html, :text, :css, :ics, :csv, :vcf, :png, :jpeg, :gif, :bmp, :tiff, :mpeg, :xml, :rss, :atom, :yaml, :multipart_form, :url_encoded_form, :json, :pdf, :zip], :variants=>[], :handlers=>[:erb, :builder, :raw, :ruby, :coffee, :jbuilder]}. Searched in:
* "/Users/jackburum/personal_projects/quotes_app/app/views"
* "/Users/jackburum/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/devise-3.5.2/app/views"
):
1: $('#links').append('<%= j render(@links) %>');
2: <% if @posts.next_page %>
3: $('.pagination').replaceWith('<%= j will_paginate(@links) %>');
4: <% else %>
app/views/links/index.js.erb:1:in `_app_views_links_index_js_erb___2714542505890050790_70114472173520'
即使在我创建了 _links 部分之后,这种情况仍然会发生。
这是我的 links.coffee.js
文件中的脚本代码。当我使用警报消息进行测试时,代码测试得很好,但是当我用 get 脚本替换警报消息时,我收到了 AJAX 错误。
ready = ->
jQuery ->
$(window).scroll ->
if $(window).scrollTop() > $(document).height() - $(window).height() - 50
$.getScript($('.pagination next_page').attr('href'))
$(document).ready(ready)
$(document).on('page:load', ready)
有人可以帮忙吗?
最佳答案
1: $('#links').append('<%= j render(@links) %>');
Missing partial links/_link
当您渲染 ActiveRecord 模型数组时,Rails 将根据这些模型的类推导出部分名称,并尝试为每个模型对象加载单独的部分名称。因此,在您的情况下,部分将是 links/_link
,这正是 Rails 尝试根据错误消息加载的内容。
This still occurs even after I created my _links partial
这里有一个拼写错误,应该是单数形式的_link
。这是用于呈现一个不同链接的部分。
关于javascript - Rails 应用程序中的 AJAX 请求错误 : xhr. send( ( options.hasContent && options.data ) || null );,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34503607/