在Jails 4 JS/ERB模板中嵌入JSON

Bea*_*red 7 javascript ruby json ruby-on-rails

我正在尝试在我的RoR 4应用程序中将模型数据嵌入到一些javascript中.控制器正在为模型数据生成JSON,如此...

def my_controller_method
  @person = Person.find(params[:id])
  @person_json = @person.to_json(only: [:name, :id])
end
Run Code Online (Sandbox Code Playgroud)

我想在我不引人注目的javascript中使用json来使用JSON.parse()创建javascript对象...

var personJSON = <%= j @person_json %>;
var person = JSON.parse(personJSON);
Run Code Online (Sandbox Code Playgroud)

但是生成的javascript是......

var personJSON = {\&quot;id\&quot;:1,\&quot;name\&quot;:\&quot;fred\&quot;};
var person = JSON.parse(personJSON);
Run Code Online (Sandbox Code Playgroud)

并且javascript默默地失败了.

在搜索解决方案时,我在SO上发现了这个问题,但是当我尝试使用html_safe方法时,我的rails应用程序崩溃说html_safe是一种未知方法.

在此先感谢您的帮助!

rog*_*lio 16

那这个呢:

var personJSON = <%= @person_json.to_json.html_safe %>
Run Code Online (Sandbox Code Playgroud)

要么

var personJSON = <%= raw @person_json %>
Run Code Online (Sandbox Code Playgroud)

我认为最后一个选项对你的特定情况更好.