7

ruby 配列を js ビュー ( js.erb形式) に渡そうとしていますが、まったく機能しません。

var array = "<%= @publishers_list %>";

変数配列は、配列のすべての値を含む文字列として設定されます。

配列形式を維持する方法はありますか?

編集

配列形式が原因であることに気付きました。

[{:label => "name1", :value => value1}, {:label => "name2", :value => value2}]

次のような単純な配列を渡そうとしました:

[1,2,3]

そしてそれはうまくいきました。

問題は次のとおりです。この種の配列をどのように渡すことができますか? jQueryオートコンプリートのソースとして配置したいので、これらのハッシュを保持する必要があります。

4

3 に答える 3

12
var array = <%= escape_javascript @publisher_list.to_json %>
于 2013-04-25T09:13:58.203 に答える
2

これを試して:

var array = <%= j @publishers_list.to_json %>

jの省略形ですescape_javascript(コメント者 lfx_cool に感謝します)。

ドキュメントを参照してください: http://api.rubyonrails.org/classes/ERB/Util.html

ビューのコードを少しきれいにするために、コントローラーで をに変えることもでき@publishers_listますjson。そうすれば、ビューで次を使用できます。

var array = <%= j @publishers_list %>
于 2013-04-25T09:14:13.663 に答える
0

次のように、コントローラーの特定のアクションで配列を定義するだけです。

def rails_action
  @publishers_list = []
  # write some code to insert value inside this array
  # like: 
  # @publishers.each do |publisher|
  # @publishers_list << publisher.name
  # end 
end

次のような、このアクションに関連付けられている js ファイル: rails_action.js.erb

今あなたのコードを使用してください

var array = [];
array = "<%= @publishers_list %>";

ありがとう。

于 2013-04-25T09:57:55.587 に答える