2015-02-23 55 views
1

我试图让Chartkick在Rails中使用JSON数据源。
当指定图表为pie_chart User.group(:language).count时,我得到了预期的饼图。chartkick JSON数据源

但是,当从数据控制器方法中指定图表为:pie_chart /path_to_report_data时,我什么也得不到。 即,一个空的空白图表(在它没有数据)

我的数据控制器:

def report  
    @language= User.group(:language).count 
    if request.xhr? 
     render :json => { :language => @language } 
    end 
    end 

我的观点:

<%= line_chart "/data/report" %> 

我可以看到数据通过一个Ajax递送调用指定的控制器。

+0

我认为你需要有详细的信息,再试一次,因为有很少去这里。 – 2015-02-23 16:19:45

+0

问题似乎是JSON数据的格式。以{“”:5,“en”:12}形式提供数据时,我得到了一张体面的图。在产生{“language”:{“”:5,“en”:12}}的控制器中使用前面提到的格式时,我会得到一个空图。 – user2459657 2015-02-28 19:16:29

+0

这是否工作? 'render:json => @ language.to_json' – 2015-03-02 09:40:58

回答

1

这一次为我的作品:

def report1 
    begin 
    @data= [["Cat",6],["Dog",4],["Horse",1],["Parrot",2]] 
    rescue Exception => ex 
    logger.info('Report 1 error : ' + ex.message) 
    @data = nil 
    end 
    if request.xhr? 
    render json: @data 
    end 
end 

,并在视图:

<%= datasource = "/path_to_data_controller/report1" 
    line_chart datasource, discrete: true 
%> 

HTH