我正在使用Gon gem将一些数据从Rails发送到BackBone。
我的application_controller.rb
:
class ApplicationController < ActionController::Base
before_action :init_gon
def init_gon
gon.me = render_to_string(template: 'users/_me.json.jbuilder')
end
end
所以在此之后,如果我打开我的Web应用程序的任何页面,它只会将html显示为纯文本:
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns="" xmlns="http://www.w3.org/1999/xhtml">
<head>
.....
我该如何处理?
答案 0 :(得分:0)
我认为您的问题是将您的呈现gon
数据作为字符串。我认为您应该传递数据而无需呈现字符串
我没有任何关于该特定部分的经验,但之前我曾广泛使用gon
。这是一个涵盖主题的RailsCast的片段:
Gon只需创建一个脚本标记然后使用。填充gon变量 我们在控制器中设置的数据。如果我们想要自定义JSON 返回给客户端Gon支持RABL和 Jbuilder模板,最近都有这些模板 发作。要自定义我们的产品列表返回的数据 可以创建index.json.rabl文件并定义我们想要的属性 在那里返回:
/app/views/products/index.json.rabl
collection Product.limit(10)
attributes :id, :name, :price
/app/controllers/products_controller.rb
class ProductsController < ApplicationController
def index
gon.rabl "app/views/products/index.json.rabl", as: "products"
end
end
<强>的JBuilder 强>
也许这会有所帮助? render GON data with jBuilder有一种方法(我认为你正在使用):
#app/controllers/application_controller.rb
def init_gon
gon.jbuilder template: 'users/_me.json.jbuilder'
end