私は ajax リクエストを作成しています。完了したら、ページに div を追加しようとしています。何らかの理由で、インスタンス変数を .js.erb ファイルで動作させることができません。
呼び出されるこのコントローラーメソッドがあります
# PUT /applications/1
# PUT /applications/1.json
def update
@application = Application.find(params[:id])
@current_app = params[:application]
@curr_app_id = params[:id]
@current_app.values.each do |key, val|
key.values.each do |k,v|
@curr_app_field_name = k[:field_name]
@curr_app_field_value = k[:field_type]
end
end
respond_to do |format|
if @application.update_attributes(params[:application])
format.html { redirect_to @application, notice: 'Application was successfully updated.' }
format.json { head :no_content }
format.js
else
format.html { render action: "edit" }
format.json { render json: @application.errors, status: :unprocessable_entity }
format.js
end
end
end
この .js.erb ファイルをレンダリングする
console.log('name = '+<%= escape_javascript @curr_app_field_name %>); // line 1
console.log('test'); // line 2
しかし、インスタンス変数をそのままにしておくと、firebug で出力が得られません。ポスト リクエストで、console.logs が正しいフィールド名で生成されることを確認できますが、firebug コンソールには何も表示されません。
1行目を完全に削除すると機能します。
.js.erb ファイル内のいくつかの変数にアクセスできるようにするにはどうすればよいですか?