0

2 つの JSON オブジェクトを連結し、その結果を JSON.erb ファイルに表示する必要があります。現在、次のコードを使用すると、不要なバックスラッシュが多数発生します。どうすればそれらを取り除くことができますか?

私は次のようなものを期待しています:

{ 
    "success":true, 
    "info":"ok", 
    "data":
        { "steps":
            [
  {
    "id": 243,
    "last": false,
    "name": "Project Overview",
    "position": 0,
    "published_on_formatted": "07/18/2013 14:15:00",
    "images": [
      {...

そして、私はこれを得ています:

{ 
    "success":true, 
    "info":"ok", 
    "data":
        { "steps":
            [
  "{\"id\":721,\"last\":false,\"name\":\"Project Overview\",\"position\":0,\"images\":...

私の index.html.erb ファイル:

{ 
    "success":true, 
    "info":"ok", 
    "data":
        { "steps":
            <% first_step = @project.first_step.to_json(only: [:name, :id, :last, :position], include: {images: {only: [:image_path, :position, :id] } } ).html_safe%>
            <% other_steps = @project.non_overview_steps.to_json(only: [:name, :id, :last, :position], :methods=> :published_on_formatted, include: {images: {only: [:image_path, :position, :id] } } ).html_safe %>
            <% all_steps = first_step + other_steps %>
            <%= JSON.pretty_generate([all_steps]).html_safe %> 
    } 
}
4

2 に答える 2

0

これが私のjson.erbファイルを修正した方法です:

{ 
    "success":true, 
    "info":"ok", 
    "data":
        { "steps":
            <% first_step = @project.first_step.as_json(only: [:name, :id, :last, :position], include: {images: {only: [:image_path, :position, :id] } } )%>
            <% other_steps = @project.non_overview_steps.as_json(only: [:name, :id, :last, :position], :methods=> :published_on_formatted, include: {images: {only: [:image_path, :position, :id] } } ) %>
            <% all_steps = other_steps.unshift(first_step) %>
            <%= JSON.pretty_generate(all_steps).html_safe %>
    } 
}
于 2013-07-25T05:48:53.250 に答える
0

<%=raw ... %>逃げるのを避けるために使用します。

多次元ハッシュですべてを構築to_jsonし、最後にそれを呼び出します。

于 2013-07-25T05:49:06.370 に答える