Ruby on rails Rails UJS响应呈现原始html而不是解释的haml 使用Webpacker的Rails 6.0.1.2 卡米纳里宝石 哈姆 Rails ujs
我正在使用kaminari gem实现一个无限滚动特性,用于分页和rails ujs 该部分将在初始页面视图上进行精细加载。它显示结果(每个结果都是一张由名为“rooms\u card.html.haml”的分部渲染的卡片) 将index.html.haml页面上的文件卡部分呈现为集合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 但是,当我单击“查看更多”链接时,会发出请求并追加结果
= 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
,可以使用
希望这有帮助