На мой взгляд, я сохраняю массив хэшей в скрытом поле.
<div>
<%= hidden_field_tag :data_filtered, :value => @data_filtered %>
</div>
Мой javascript
$(document).ready(function(){
freezeTopRow($('#dataTable'));
$("#export").click(function(){
var data1 = $("#data_filtered").val()
$.ajax({
type: "POST",
url: "export",
dataType: 'json',
data: {data_filtered: data1}
});
});
});
Мой контроллер
def export
CSV.open("data.csv", "wb") do |csv|
csv << params[:data_filtered].first.keys
@data_filtered.each do |hash|
csv << hash.values
end
end
end
Когда я просматриваю params[:data_filtered] после того, как он был возвращен контроллеру, я вижу строку:
"{:value=>[{"a"=>nil, "b"=>nil, "c"=>0}]}"
Но я хочу, чтобы он был в исходной форме (массив хэшей, в данном случае всего 1 хеш), половина проблемы — это :value. Я не хочу, чтобы это сохранялось, и я не знаю, как это проанализировать, чтобы получить только массив. В основном я хочу
[{"a"=>nil, "b"=>nil, "c"=>0]
@data_filtered
на ваш взгляд? Может быть, это хэш? - person mu is too short   schedule 01.07.2013to_s
, который не предназначен для простого анализа. Если вы используете JSON, синтаксический анализ становится проще. - person mu is too short   schedule 01.07.2013