0

複数のデータベース クエリの結果から作成された json オブジェクトがあります。

複数のメソッド(インデックス、検索)から同じjson形式を使用できるように、jsonを部分的に移動しようとしています。

私は_listResults.js.erbに結果を持っていましたが、今はそれらをresults.json.erbに移動し、_listResults.js.erbに移動しました

[
<% @results.each_with_index do |result, idx| %>
<%= 'results.json.erb' をレンダリング、結果 => 結果 %>
<%終了%>
]

私の部分はこのように見えます

{"result":<%= result.id %>
,"タイトル":"<%= 結果.タイトル %>
.....

改行のため、次のエラーが表示されます

... 構文エラー、予期しない ','、keyword_end が必要です...);@output_buffer.safe_concat(',"title":');@output_buffer.a...

json の出力全体を 1 行に入れることはできますが、それで問題は解決するように見えますが、後で出力を変更したい場合、それを維持するのは本当に面倒です。

この種のことに対処する最善の方法は何ですか。

それが問題になる場合、私はWindowsを使用しています(うまくいけばそうではありません)。

ありがとう

4

3 に答える 3

0

どうですか:

{"result":<%= result.id %>,
 "title":"<%= result.title %>"
 ...

参考までに、http: //www.jsonlint.com/は、jsonが有効かどうかを確認できる優れたサイトです。

于 2011-04-04T19:05:44.333 に答える
0

元のerbファイルに構文エラーがありresult => resultます:result => result

[
<% @results.each_with_index do |result, idx| %>
<%= render 'results.json.erb', :result => result %>
<% end %>
]
于 2011-04-04T19:33:55.957 に答える
0

問題は json ではなく、Ruby パーサーの動作方法にありました。この場合、同じ行にコンマが必要です。

[0,
 2
] parses

[0
,2] doesn't

あなたのerbをに変更してください

{
  "result": <%= result.id %>,
  "title": "<%= result.title %>"
}
于 2011-04-04T19:16:56.210 に答える