gpt4 book ai didi

ruby-on-rails - 将呈现的 HTML 添加到 JSON

转载 作者:行者123 更新时间:2023-12-02 03:47:05 25 4
gpt4 key购买 nike

给定一个 Controller MapsController:

class MapsController < ApplicationController
def index
@campings = Camping.finm(:all) #in reality a much more complex scope.
respond_to do |format|
format.html
format.json { render :json => @campings }
end
end
end

这会很好地呈现 JSON。但是现在,我想传递一些 HTML 以注入(inject)到 DOM 中:

$.ajax({
dataType: "json",
url: "maps.json?bounding=45.446465,-4.935988,53.944621,17.036668",
}).done(function (data) {
//...
var gInfoWindow = new google.maps.InfoWindow({
content: camping.infowindow
});
//...
$("#campings").append(camping.listing);
});

此 JavaScript 在每个返回的 JSON 对象中假定一个 .listing.infowindow 属性。它们应该包含 HTML,使用部分 campings/_infowindow.html.hamlcampings/_listing.html.haml 呈现。

这是解决这个问题的正确角度吗?或者我应该在 JavaScript 中构建 HTML 并避免发送 HTML?如果是这样,还有没有办法使用 partials 来构建实际的 HTML?

如何将 listinginfowindow 添加到 ObjectsCamping 模型没有这些字段?

最佳答案

可能有点粗糙(而且不是 100% super “Rails 方式”)但在类似情况下对我来说工作正常:

render :text => {:result => "success",
:document_row => render_to_string(
:file => "admin/documents/_document_row",
:formats => "html",
:layout => false,
:locals => {:documentable => documentable})}.to_json

所以大致只是生成一个散列并使用 render_to_string 从 _document_row 模板中获取 html。

关于ruby-on-rails - 将呈现的 HTML 添加到 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16194530/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com