【问题标题】:Rails 6: Ajax not accepting render in js.erbRails 6:Ajax 不接受 js.erb 中的渲染
【发布时间】:2020-08-29 06:40:17
【问题描述】:

我正在尝试使用 AJAX 显示 SHOW 操作的结果。

在 show.js.erb 中,正确呈现:

$('#someid').html("<p>regular html</p>")

这会呈现所选@category 的名称

$('#someid').html("<%= j render @categories %>")

但在尝试渲染关联的 SHOW 视图 (show.html.erb) 时不起作用:

$('#someid').html("<%= j render 'show', category: @category %>")

我收到的错误如下:

ActionView::Template::Error (Missing partial categories/_show with {:locale=>[:en], :formats=>[:js, :html, :text, :css, :ics, :csv, :vcf, :vtt, :png, :jpeg, :gif, :bmp, :tiff, :svg, :mpeg, :mp3, :ogg, :m4a, :webm, :mp4, :otf, :ttf, :woff, :woff2, :xml, :rss, :atom, :yaml, :multipart_form, :url_encoded_form, :json, :pdf, :zip, :gzip], :variants=>[], :handlers=>[:raw, :erb, :html, :builder, :ruby, :jbuilder]}. Searched in:
  * "/home/ubuntu/environment/project_name/app/views"
  * "/home/ubuntu/.rvm/gems/ruby-2.6.3/gems/actiontext-6.0.3/app/views"
  * "/home/ubuntu/.rvm/gems/ruby-2.6.3/gems/actionmailbox-6.0.3/app/views"
):
    1: $('#someid').html("<%= j render 'show', category: @category %>")
  
app/views/categories/show.js.erb:1

如何渲染 show.html.erb?

【问题讨论】:

  • 你有什么错误?
  • 我用收到的浏览器控制台错误更新了我的问题
  • 查看“网络”选项卡上的响应。它认为有完整的错误跟踪
  • GET 500 错误意味着您的 Rails 服务器返回了 500 - Internal Server Error。检查运行服务器的日志或终端。请添加堆栈跟踪和与问题相关的其他代码。我的猜测是您的显示视图中的某些内容引发了未捕获的异常。
  • 是的,我查看了错误的错误,而查看正确的错误帮助我解决了问题。谢谢!!

标签: jquery ruby-on-rails ajax


【解决方案1】:

你应该改变文件夹show.html.erb -> _show.html.erb 因为它是模板部分渲染

【讨论】:

    【解决方案2】:

    代表 OP 回答:

    最后的问题是show.html.erb 需要命名 _show.html.erb

    我查看的是浏览器错误,而不是 rails 服务器错误。一世 仍然发布错误,以记录我的解决过程。

    我能够在错误的这一行中看到这一点

    ActionView::Template::Error (Missing partial categories/_show with {:locale=>[:en], .......
    

    show.html.erb 之前有下划线,不是立即 第一次使用 AJAX 对我来说很明显。

    【讨论】:

      猜你喜欢
      • 2021-03-21
      • 1970-01-01
      • 1970-01-01
      • 2016-12-30
      • 2013-07-06
      • 1970-01-01
      • 2023-03-11
      • 2012-12-08
      • 1970-01-01
      相关资源
      最近更新 更多