应用程序布局在render_to_string之后作为纯文本加载

时间:2014-03-27 09:29:46

标签: ruby-on-rails render-to-string

我正在使用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>
.....

我该如何处理?

1 个答案:

答案 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

https://github.com/gazay/gon/wiki/Usage-with-jbuilder