2015-10-14 2 views
0

Я создаю рубин на приложении rails, чтобы показать стоимость акций для некоторых компаний в некоторый период времени. Я использую следующие камни: chartkick, groupdate и stock_quoteГрафики Chartkick и groupdate показывают только одну точку на графике, график должен быть несколько строк

Мои Shema.db:

create_table "companies", force: :cascade do |t| 
    t.string "symbol" 
    t.datetime "current_date" 
    t.float "value" 
    t.datetime "created_at", null: false 
    t.datetime "updated_at", null: false 
    end 

Заливка базы данных с seeds.rb:

Company.delete_all 
d1 = Date.new(2014, 9, 1) 
d2 = Date.new(2015, 9, 1) 

stocks = StockQuote::Stock.history("aapl", d1, d2) 
stocks.each do |stock| 
    company = Company.new 
    company.symbol = stock.Symbol.to_s 
    company.current_date = stock.Date 
    company.value = stock.Volume 
    company.save 
end 

stocks = StockQuote::Stock.history("tsla", d1, d2) 
stocks.each do |stock| 
    company = Company.new 
    company.symbol = stock.Symbol.to_s 
    company.current_date = stock.Date 
    company.value = stock.Volume 
    company.save 
end 

stocks = StockQuote::Stock.history("yhoo", d1, d2) 
stocks.each do |stock| 
    company = Company.new 
    company.symbol = stock.Symbol.to_s 
    company.current_date = stock.Date 
    company.value = stock.Volume 
    company.save 
end 

В контроллере:

def show 
    @company = Company.all 
    end 

В show.html.erb я ставлю код от http://ankane.github.io/chartkick/:

<div class="row"> 
    <div class="col-xs-12"> 
    <h3>Values By Day 2 years by companies</h3> 
    <%= line_chart @company.group(:symbol).group_by_day(:current_date, format: "%B %d, %Y").count, discrete: true %> 
    </div> 
</div> 

График должен быть несколько строк, и есть только ONE точку на графике:

enter image description here

Что я должен сделать, изменить, добавить ???

ответ

0

Возможно, они изменили API с этого вопроса, но они показывают пример многострочной серии. http://chartkick.com/

<%= line_chart Feat.group(:goal_id).group_by_week(:created_at).count %> 

Так что попробуйте

<%= line_chart @company.group(:symbol).group_by_day(:current_date).count %> 

Вы группируя по current_date вместо :created_at, что все готово к тому же значению:

company.current_date = stock.Date 

Я не знаю, что это вернется, потому что это не похоже на значение атрибута. Я получаю ошибку undefined method Date.

+0

API был стабильным в течение некоторого времени, поэтому документы должны быть в курсе :) – buren

Смежные вопросы