0

私は単純なプロジェクトとRonRを試しています。具体的には、rmagickとimagemagicを使用してgruffgemを使用していくつかのグラフを生成しようとしています。すべてが正常にインストールされますが、チャートを使用して単純な.rbを実行すると、次のようになります。

C:/RailsInstaller/Ruby1.8.7/lib/ruby/gems/1.8/gems/gruff-0.3.4/lib/gruff/base.rb:467:[BUG]セグメンテーション違反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のWebサイトの例からのものです。

#!/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')

上記の.rbスクリプトをirbにロードするか、コントローラーに直接ロードしてみます。どちらの方法も失敗します。

コントローラでグラフを作成してからビューに表示しようとしても、再び失敗します。毎回同じセグメンテーションエラー。

ちなみに、私はgemをインストールし、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 に答える