Ruby on rails 每个_,_索引仅显示最后一个选项

Ruby on rails 每个_,_索引仅显示最后一个选项,ruby-on-rails,ruby-on-rails-3.2,Ruby On Rails,Ruby On Rails 3.2,我使用GRUF with Prawn插入一个图像图,我正确显示了条形图,但标签仅显示最后一个标签 使用对虾(0.15.0)和粗饲料(0.5.1) 对虾 def initialize(result) super() @result = result show_graph end def show_graph lint = @result.map {|v| v.lint/227 } g = Gruff::Bar.new('540x200') g.data(:lint, lint, '#00

我使用GRUF with Prawn插入一个图像图,我正确显示了条形图,但标签仅显示最后一个标签

使用对虾(0.15.0)和粗饲料(0.5.1)

对虾

def initialize(result)
 super()
 @result = result
 show_graph
end

def show_graph
lint = @result.map {|v| v.lint/227 } 
g = Gruff::Bar.new('540x200')
g.data(:lint, lint, '#00463f')
@result.each_with_index do |v, i|
g.labels = {i => v.variety.variety_name}
end
g.y_axis_label = 'Yield (bales/ha)'
g.marker_font_size = 16
g.marker_count = 5
g.theme = {:marker_color => '#333333', :font_color => '#333333', :background_colors => %w(#ffffff #ffffff)}
g.minimum_value = 0
g.hide_legend = true

g.write("#{Rails.root}/app/assets/images/chart.png")

image "#{Rails.root}/app/assets/images/chart.png"
结束

控制器

@result = Result.where('trial_id' => params[:trial_id]).order('lint DESC')

您所犯的错误是在每次迭代时重新定义标签哈希。 而不是做

g.labels = {i => v.variety.variety_name}
尝试:

并且在每个之前,您可以放置:

g.labels = {}

我想g.labels应该是一个数组…它肯定是一个散列。然后,你这样做,它肯定会保持最后的选择完美!谢谢你。你搞定了。
g.labels = {}