首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用gRaphael on rails

如何使用gRaphael on rails
EN

Stack Overflow用户
提问于 2012-07-30 20:27:29
回答 1查看 783关注 0票数 1

作为Rails的新手,我正在努力寻找一个很好的开放式图表库来使用rails。

通过一些研究,我发现了gRaphael,似乎它只适合我,如果我能在我的rails应用程序中使用它的话。我发现了一个gem,它看似聚合了graphael (graphael-rails),但实际上并不了解如何使用它,因为我无法引用它的文件,并且必须将它们复制/粘贴到我的本地资源目录中。

我遵循了这些指导原则,并将raphael-min.js、g.raphael.js和g.pie.js放在了我的assets/javascripts文件夹中,还有一个demo.css文件放在了stylesheets文件夹中,还有一些背景图片。

我添加到application.html.erb

代码语言:javascript
复制
<%= javascript_include_tag "raphael-min.js","g.raphael.js","g.pie.js", "application" %>

在我看来:

代码语言:javascript
复制
...
<div id="holder"></div>
...
<%= javascript_tag "

            var r = Raphael(""holder"");
        r.piechart(320, 240, 150, [55, 20, 13, 32, 5, 1, 2, 10]);
            r.text(320, 70, 'Static Pie Chart').attr({ font: '20px ""Fontin Sans"", Fontin-Sans, sans-serif' });

       " %>
</body>

问题是,由于某些原因,piechart函数没有被构建到拉斐尔DOM对象中。

我可能做错了什么?我已经花了一整天的时间来寻找这个问题的答案,希望能得到大家的帮助。

下面是加载到我的html文件中的脚本

代码语言:javascript
复制
<script type="text/javascript" src="/assets/raphael-min.js?body=1">
<script type="text/javascript" src="/assets/g.raphael.js?body=1">
<script type="text/javascript" src="/assets/g.pie.js?body=1">
<script type="text/javascript" src="/assets/jquery.js?body=1">
<script type="text/javascript" src="/assets/jquery_ujs.js?body=1">
<script type="text/javascript" src="/assets/bootstrap-transition.js?body=1">
<script type="text/javascript" src="/assets/bootstrap-alert.js?body=1">
<script type="text/javascript" src="/assets/bootstrap-button.js?body=1">
<script type="text/javascript" src="/assets/bootstrap-carousel.js?body=1">
<script type="text/javascript" src="/assets/bootstrap-collapse.js?body=1">
<script type="text/javascript" src="/assets/bootstrap-dropdown.js?body=1">
<script type="text/javascript" src="/assets/bootstrap-modal.js?body=1">
<script type="text/javascript" src="/assets/bootstrap-scrollspy.js?body=1">
<script type="text/javascript" src="/assets/bootstrap-tab.js?body=1">
<script type="text/javascript" src="/assets/bootstrap-tooltip.js?body=1">
<script type="text/javascript" src="/assets/bootstrap-popover.js?body=1">
<script type="text/javascript" src="/assets/bootstrap-typeahead.js?body=1">
<script type="text/javascript" src="/assets/bootstrap.js?body=1">
<script type="text/javascript" src="/assets/g.pie.js?body=1">
<script type="text/javascript" src="/assets/g.raphael.js?body=1">
<script type="text/javascript" src="/assets/jquery-ui.min.js?body=1">
<script type="text/javascript" src="/assets/raphael-min.js?body=1">
<script type="text/javascript" src="/assets/retailers.js?body=1">
<script type="text/javascript" src="/assets/application.js?body=1">

和我的application.js文件内容:

代码语言:javascript
复制
//= require jquery
//= require jquery_ujs
//= require bootstrap
//= require_tree .

注意,拉斐尔的js文件被加载了两次,我将它们包含在我的application.html.erb文件中的唯一原因是,如果我不这样做,则在依赖于它的g.raphael.js和g.pie.js之后,将会加载raphael-min.js,并且我会得到javascript错误...

对此有什么建议吗?

谢谢

EN

回答 1

Stack Overflow用户

发布于 2012-07-30 20:41:47

我不知道graphael,但我会用Google API。我在这里找到了它的一个红宝石包装器,它似乎得到了维护:

https://github.com/mattetti/googlecharts

用法:

我建议在某个地方创建一个变量:

代码语言:javascript
复制
@graph_url = Gchart.bar( :data => [[1,2,4,67,100,41,234],[45,23,67,12,67,300, 250]], :title => 'SD Ruby Fu level', :legend => ['matt','patrick'], :bg => {:color => '76A4FB', :type => 'gradient'}, :bar_colors => 'ff0000,00ff00')

然后在视图中:

代码语言:javascript
复制
<%= image_tag @graph_url, :width=>500, :height=>300 %>

这样看起来更干净:)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11721573

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档