0

私は Rails と jbuilder を初めて使用するので、これが実行可能かどうかはわかりません。私はこのオートコンプリート jquery プラグインhttp://www.devbridge.com/sourcery/components/jquery-autocomplete/を使用しており、期待される応答は次の形式になります。

{
    query:'Li',
    suggestions:['Liberia', 'Libyan Arab Jamahiriya', 'Liechtenstein', 'Lithuania'],
    data:['LR', 'LY', 'LI', 'LT']
}

jbuilder を使用して json を返そうとすると、次のようにキーと値の両方が引用符で囲まれた json オブジェクトが返されます

{"query":"Comp","suggestions":"['Test Company','Test Company 2','Test company','tester chester','before create test']","data":"['1','2','3','4','5']"}

これが原因でプラグインが機能しないようです。返された json から二重引用符を削除する方法はありますか? 私のjbuilderファイルは次のようになります。

suggestions = ""
data = ""

@companies.each do |company|
  suggestions += "'" + company.name + "',"
  data += "'" + company.id.to_s + "',"
end

json.query @query
json.suggestions "[" + suggestions[0...-1] + "]"
json.data "[" + data[0...-1] + "]"

ありがとう!

4

1 に答える 1

0

私は解決策を見つけました (または同僚と私が解決しました;) jbuilder コードはこれに変更されました。文字列を作成するのではなく、json ビルダーに配列を与える必要がありました。

suggestions = []
data = []

@companies.each do |company|
  suggestions.push(company.name)
  data.push(company.id)
end

json.query @query
json.suggestions suggestions
json.data data
于 2014-05-01T18:09:30.530 に答える