2012-06-06 24 views
7

私は私のコントローラで、このようなRubyの配列があります。RailsのRuby配列からJS配列へ - 'quote'?

@location_list = [ 
     ['Mushrooms', 3], 
     ['Onions', 1], 
     ['Olives', 1], 
     ['Zucchini', 1], 
     ['Pepperoni', 2] 
     ] 

そして、私は私の意見では、このようにそれをキャッチしています:

location_list = "<%= @location_list.to_json %>"; 

しかし、私は(location_list)のアラートをすれば、私が手を:

[[&quot;Mushrooms&quot;,3],[&quot;Onions&quot;,1],[&quot;Olives&quot;,1],[&quot;Zucchini&quot;,1],[&quot;Pepperoni&quot;,2]] 

&のないコレスポンデントオブジェクトを取得するにはどうすればよいですか?

答えて

25

てみてください。to_jsonを使用して

<%= raw @location_list.as_json %> 

が埋め込まれた二重引用符で、文字列を描画することになります、とJS-エスケープする必要があります。そして配列ではなく文字列になります。

+0

私はそれを試みました。主な問題は、rawまたはhtml_safeのいずれかを実行しているときに、そのvarを使用しようとしたときに(コンソールの)「Unexpected identifier」が表示されることです。私がソースを見ても、これを見ることができます:var location_list = "[[キノコ"、3]、["オニオン"、 "1"、 "オリーブ"、1]、["ズッキーニ" "ペパロニ"、2]] "; console.log(location_list);何が起こっているのでしょうか? –

+0

@HommerSmithどうやって使用しようとしていますか?また、実際にそのように引用されている場合は、配列ではなく文字列です。あなたは 'as_json'を試しましたか? –

+0

私はちょうどそれをコンソールに表示しようとしています...基本的に私はRubyからJSに配列を渡したいと思います...もし私がruby配列をこのように変更したら:@location_list = [1,3,4] - - 私はそのエラーを取得しません。配列の中に文字列があり、私のクロームコンソールに「Unexpected identifier」が表示されたときだけです。 –

-1

これが私の仕事:

<%= @location_list.to_s.gsub(''', '') %> 

は、基本的には何もないとそれらを置き換えることにより、引用符を削除するために.gsub(''','')を使用し、その後、文字列に配列全体を変換するために.to_sを使用しています。

+0

なぜdownvote? – andrewcockerham

関連する問題