Railsコントローラーで配列を定義しています:
str_array = ["Hi","hello"]
アセットの下に保存されているJavaScriptファイルでこの配列にアクセスする必要があります。jsで配列の可変型の配列を定義しました。私はこのようにアクセスしようとしましたが失敗しました:
var js_arr = [<%= raw @str_array.to_json %>];
JavaScriptのrails配列にアクセスする他の方法はありますか?
Railsコントローラーで配列を定義しています:
str_array = ["Hi","hello"]
アセットの下に保存されているJavaScriptファイルでこの配列にアクセスする必要があります。jsで配列の可変型の配列を定義しました。私はこのようにアクセスしようとしましたが失敗しました:
var js_arr = [<%= raw @str_array.to_json %>];
JavaScriptのrails配列にアクセスする他の方法はありますか?
そのJavaScriptファイルに.erb拡張子を追加しましたか?
2つの方法があります。
1)必要に応じてajax経由でjavascriptに渡します。(例えば、ボタンクリックなど)。
2)アクセスするビューテンプレート(erb、haml、またはw / e)の1つにインラインJavaScriptを配置し、メソッド呼び出しで#{rails_array}.to_jsonを使用してrails配列を渡します。
1つ目は、よりクリーンでテスト可能であり、長期的にはより保守しやすいものです。2つ目は、実装が簡単です。
RoRからJSにものを渡すための非常にクリーンな方法は、gongemです。
erbなどの厄介な印刷変数はありません。
gon
RoRコントローラーにデータを積み込むことができるというオブジェクトを取得します。レイアウトに追加include_gon
すると、voilà-gonオブジェクトはJSでも使用できます。