1

我有一个 Rails 项目,我需要上传一个 csv 文件并生成一个图表,但我不确定如何最好地解决这个问题。

我可以使用回形针上传 csv 文件并存储在我的数据库中。

我使用 gemslazy_high_charts 和 gmaps4rails ,我可以用我的纬度和经度坐标很好地映射到一个城镇,但我还希望在每个标记的显示中显示我想要存储在目录中的 csv 中的 highcharts 图表和输出到相关城镇。

我的表格

<%= simple_form_for @soiltemp, :html => {:multipart => true} do |f| %>
  <div class="form-inputs">
    <%= f.input :site %>
    <%= f.input :latitude %>
    <%= f.input :longitude %>
    <%= f.input :csv, as: :file %>
  </div>

  <div class="form-actions">
    <%= f.button :submit %>
  </div>
<% end %>

索引视图

<script src="//maps.google.com/maps/api/js?v=3.13&amp;sensor=false&amp;libraries=geometry" type="text/javascript"></script>
<script src='//google-maps-utility-library-v3.googlecode.com/svn/tags/markerclustererplus/2.0.14/src/markerclusterer_packed.js' type='text/javascript'></script>
<h1>Soil Temperatures</h1>
<hr>

<div style='width: 100%;'>
  <div id="map" style='width: 100%; height: 500px;'></div>
</div>
<script type="text/javascript">
handler = Gmaps.build('Google');
handler.buildMap({ provider: {}, internal: {id: 'map'}}, function(){
  markers = handler.addMarkers(<%=raw @hash.to_json %>);
  handler.bounds.extendWith(markers);
  handler.fitMapToBounds();
});
</script>
<% end %>

控制器

class SoiltempsController < ApplicationController

  def index
    @soiltemps = Soiltemp.all
    @hash = Gmaps4rails.build_markers(@soiltemps) do |soiltemps, marker|
      marker.lat soiltemps.latitude
      marker.lng soiltemps.longitude
      marker.infowindow soiltemps.want to display graph here
    end
end

架构

create_table "soiltemps", :force => true do |t|
    t.string   "site"
    t.float    "latitude"
    t.float    "longitude"
    t.datetime "created_at", :null => false
    t.datetime "updated_at", :null => false
    t.string   "csv"
  end
4

0 回答 0