RailsでPOSTを受けたコントローラのアクションからJavaScriptを操作する

いつも忘れるのでメモ
ハマったのがRailsでのjQueryの使い方
jQueryは標準で有効化されてないんだっけ?

jQueryを有効にする

Gemfile

gem 'jquery-rails'

application.js

//= require jquery
//= require jquery_ujs
//= require rails-ujs
//= require turbolinks
//= require_tree .
//= require d3
//= require c3

これ必要なのかわからないけど、application.html.erbを書き換える

- <%= javascript_include_tag "application" 'data-turbolinks-track' => true %>
+ <%= javascript_include_tag "application" %>

Railsのコード

index.html.erb

<!-- 結果を返すDOM -->
<div id="result"></div>

<%= form_tag '/upload_csv', method: 'post', multipart: true, remote: true do %>
   <label>Upload CSV</label>
   <%= file_field :fileupload, :file %>
	
   <%= submit_tag 'Upload' %>
<% end %>

Controller

def upload_csv
	uploaded_file = fileupload_param[:file]
	read_csv = uploaded_file.read.split("\r\n").slice(5..-1).join("\r\n")
	@csv_data = CSV.parse(read_csv, headers:true)
	#logger.debug @csv_data
	render
end

レンダリングするjs.erb

$('#result').html("<%= j @csv_data.to_s %>")

実行結果