0

我正在尝试简单的项目和 RonR,特别是尝试使用带有 rmagick 和图像魔法的 gruff gem 生成一些图形。一切都安装成功,但是当我运行一个带有图表的简单 .rb 时,它给了我:

C:/RailsInstaller/Ruby1.8.7/lib/ruby/gems/1.8/gems/gruff-0.3.4/lib/gruff/base.rb:467: [BUG] Segmentation fault ruby​​ 1.8.7 (2011-06-30补丁级别 352) [i386-mingw32]

此应用程序已请求运行时以不寻常的方式终止它。请联系应用程序的支持团队以获取更多信息。

base.rb文件中的行是指这段代码:

# Writes the graph to a file. Defaults to 'graph.png'
#
# Example:
#   write('graphs/my_pretty_graph.png')
def write(filename="graph.png")
   draw()
   @base_image.write(filename)
end

同时,我试图绘制的简单图表似乎很简单,它来自 Gruff 网站的一个示例:

#!/usr/bin/ruby

require 'rubygems'
require 'gruff'
g = Gruff::Bar.new('800x500') # Define a custom size
g.sort = false  # Do NOT sort data based on values
g.maximum_value = 50  # Declare a max value for the Y axis
g.minimum_value = 0   # Declare a min value for the Y axis
g.theme_37signals  # Declare a theme from the presets available

g.title = 'A more advanced bar chart'

g.data('Foo', [5, 10, 24])
g.data('Bar', [15, 3, 10])
g.data('Else', [38, 15, 32])

g.labels = {0 => 'Last year', 1 => 'This year', 2 => 'Next year'} # Define labels for each of the "columns" in data

g.write('a_more_advanced_graph.png')

我要么尝试在irb中加载上述 .rb 脚本,要么直接将其加载到控制器中。两种方式都失败了。

即使尝试在控制器中制作图表然后在视图中显示它,它也会再次失败。每次同样的分割错误。

请注意,我已经安装了 gems,并在 Gemfile 中添加了(如果尝试从应用程序中进行)。我在 Windows 上运行 Rails 并且gruff版本是0.3.4,虽然我也尝试过使用最新版本0.3.6但那里也有同样的问题。

任何想法或建议都非常感谢!

4

1 回答 1

0

它可能与您的代码无关,但我不能肯定。

分析错误:

C:/RailsInstaller/Ruby1.8.7/lib/ruby/gems/1.8/gems/gruff-0.3.4/lib/gruff/base.rb:467:
   [BUG] Segmentation fault ruby 1.8.7 (2011-06-30 patchlevel 352) [i386-mingw32]

也就是说,当 gruff gem 执行时,当它到达 base.rb 文件中的第 467 行时,ruby 抛出了一个分段错误(一个非常低级别的错误,通常是试图访问一个不存在的内存位置)

所以不要专注于你的代码,专注于版本(即所需的 ruby​​ 版本,或 gruff 依赖的 gem 版本等)

于 2012-09-03T00:10:29.743 回答