0

我正在使用 Rails 制作一个项目,我需要制作一些图表,所以我正在考虑使用 Rubyvis。

如果我在控制器中有以下代码:

require 'rubyvis'

vis = Rubyvis::Panel.new do 
  width 150
  height 150

  bar do
    data [1, 1.2, 1.7, 1.5, 0.7, 0.3]
    width 20
    height {|d| d * 80}
    bottom(0)
    left {index * 25}
  end   
end

vis.render    
puts vis.to_svg

我应该如何将输出放在视图中?

4

1 回答 1

1

在运行时生成您希望在渲染视图中显示的 SVG 文件并不是应该在控制器中完成的事情。

相反,在您app/helpers/application_helper.rb或特定于您的控制器操作的助手中创建一个新方法。

require "rubyvis"

class ApplicationHelper
  def some_method
    vis = Rubyvis::Panel.new do 
    width 150
    height 150

    bar do
      data [1, 1.2, 1.7, 1.5, 0.7, 0.3]
      width 20
      height {|d| d * 80}
      bottom(0)
      left {index * 25}
      end   
    end

    vis.render    
    vis.to_svg
  end
end

现在在您的视图中,您可以在想要转储 SVG 数据的任何地方简单地调用以下命令。

<%= some_method %>
于 2013-04-05T12:05:11.297 回答