Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/53.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails UJS响应呈现原始html而不是解释的haml 使用Webpacker的Rails 6.0.1.2 卡米纳里宝石 哈姆 Rails ujs_Ruby On Rails_Ruby_Haml_Rails Ujs - Fatal编程技术网

Ruby on rails Rails UJS响应呈现原始html而不是解释的haml 使用Webpacker的Rails 6.0.1.2 卡米纳里宝石 哈姆 Rails ujs

Ruby on rails Rails UJS响应呈现原始html而不是解释的haml 使用Webpacker的Rails 6.0.1.2 卡米纳里宝石 哈姆 Rails ujs,ruby-on-rails,ruby,haml,rails-ujs,Ruby On Rails,Ruby,Haml,Rails Ujs,我正在使用kaminari gem实现一个无限滚动特性,用于分页和rails ujs 该部分将在初始页面视图上进行精细加载。它显示结果(每个结果都是一张由名为“rooms\u card.html.haml”的分部渲染的卡片) 将index.html.haml页面上的文件卡部分呈现为集合 = render partial: "rooms_card", collection: @rooms, as: :room, cached: true 但是,当我单击“查看更多”链接时,会发出请求并追加结果

我正在使用kaminari gem实现一个无限滚动特性,用于分页和rails ujs

该部分将在初始页面视图上进行精细加载。它显示结果(每个结果都是一张由名为“rooms\u card.html.haml”的分部渲染的卡片)

将index.html.haml页面上的文件卡部分呈现为集合

= render partial: "rooms_card", collection: @rooms, as: :room, cached: true

但是,当我单击“查看更多”链接时,会发出请求并追加结果,但显示的是原始html而不是解释的html

这是链接的代码

= link_to_next_page @rooms, "View More", class: "view-more-link", remote: true}
从我的index.js.haml文件

document.getElementById("rooms-cards").append("#{j render(partial: "rooms/rooms_card", collection: @rooms, as: :room) }")
我的回答是阻塞。 房间控制器.rb

    respond_to do |format|
      format.js
      format.html
      format.json { render json: @results, each_serializer: RoomSerializer }
    end

如何在浏览器中获得渲染响应而不是显示原始html

我一直眯着眼睛看这一切,我知道怎么做。你知道我错过了什么吗

谢谢大家!


Dave

如果将
String
DOMString
准确地说)对象传递给方法,它将作为节点插入。请传递一个对象

const wrapper = document.createElement('div');
wrapper.innerHTML = "#{j render(partial: 'rooms/rooms_card', collection: @rooms, as: :room)}"
document.getElementById("rooms-cards").append(wrapper);
如果不想创建额外的
div
,可以使用


希望这有帮助。

如果您将
字符串
DOMString
)对象传递给该方法,它将作为节点插入。请改为传递对象

const wrapper = document.createElement('div');
wrapper.innerHTML = "#{j render(partial: 'rooms/rooms_card', collection: @rooms, as: :room)}"
document.getElementById("rooms-cards").append(wrapper);
如果不想创建额外的
div
,可以使用

希望这有帮助