Ruby on Rails 初心者です。
ただいま、Ruby on Rails で、グラフを表示したくて、この2、3日ネットで検索しながら
方法を探してきましたが、ハードルが高くて、息を飲んでいるところです。
元々、このようなデータを持っています。
日付けと、もも肉相場、むね肉相場、と体相場と、もも肉販売量、むね肉販売量、と体販売量 です。
keisaiday,smomo,smune,stotai,hmomo,hmune,htotai
2016-08-02,591,235,285,126,109,7
2016-08-03,586,237,285,112,116,5
2016-08-04,0,0,285,0,0,6
2016-08-05,588,239,285,107,110,5
2016-08-06,581,236,285,86,84,7
2016-08-07,579,235,285,0,0,0
2016-08-09,589,240,285,129,107,7
2016-08-10,596,240,285,106,86,5
これを、Chartkick というグラフで表示しようとしています。グラフは問題なく動いています。
ネットで調べてここまではできています。やりたいことのイメージは、正にこの通りです。
app/views/charts/show.html.erb
<%= line_chart @graph_data %>
app/controllers/charts_conroller.rb
@graph_data = [
{"name"=>"smomo", "data"=>[['20160805', 588],['20160806', 581],['20160807', 579], ['20160809', 589], ['20160810', 596],]},
{"name"=>"smune", "data"=>[['20160805', 239],['20160806', 236],['20160807', 235], ['20160809', 240], ['20160810', 240],]},
{"name"=>"stotai", "data"=>[['20160805', 285],['20160806', 285],['20160807', 285], ['20160809', 285], ['20160810', 285]]}
]
上記のコードでなるほど、とは思いますが、特に、必ず、配列を使わないといけない、とか、
ハッシュを使わないといけない、などのこだわりはありません。一番簡単な方法がいいです。
これを、データベースにあるデータすべてを拾うやり方がわかりません。
こんなことしたり、
@graph_data = ActiveRecord::Base.connection.select_all("select keisaiday, smomo from admin_charts").to_hash
あんなことしたり、
@graph_data = {:keisaiday => '1999-04-17', :smomo => '627', :smune => '248', :stotai => '235', :hmomo => '146', :hmune => '109', :htotai => '12'}
そんなことしたり、
@graph_data = Admin::Chart.find_by_sql("SELECT keisaiday, smomo FROM admin_charts").to_hash
しましたがどうもぼくには手に負えないようです。
教えてください。よろしくお願い致します。
追記、
上記の配列のところにインスタンス変数が代入されればいいことに気付き、
@smomoary = ActiveRecord::Base.connection.select_all("select keisaiday, smomo from admin_charts")
@smuneary = ActiveRecord::Base.connection.select_all("select keisaiday, smune from admin_charts")
@stotaiary = ActiveRecord::Base.connection.select_all("select keisaiday, stotai from admin_charts")
@graph_data = [ {"name"=>"smomo", "data"=>[@smomoary]}, {"name"=>"smune", "data"=>[@smuneary]}, {"name"=>"stotai", "data"=>[@stotaiary]} ]
としました。まえよりは近付いたと思いますが、いざ、rails c で
@smomoary = ActiveRecord::Base.connection.select_all("select keisaiday, smomo from admin_charts")
を実行すると、結果の頭に、=> #<ActiveRecord::Result:0x007ffb0fd09a00 @columns=["keisaiday", "smomo"], @rows=
最後に、 @hash_rows=nil, @column_types={}>
という、余計なパラメータが入っていて結果動きません。これが出ないようにする方法をご存知の方、いらっしゃいませんか?
?これって別の質問にあげた方がいいのかな?
よろしくお願い致します。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。