2010-04-06 13 views
0

我正在使用AMCharts和導軌。 AMCharts使用Image Magic lib來導出圖表的圖像。在軌道上,這是與寶石,RMagic完成的。導軌中的RMagic錯誤,AM圖表

在此與下面的控制方法實現的控制器中:

def export 
    width = params[:width].to_i 
    height = params[:height].to_i 
    data = {} 
    img = Magick::Image.new(width, height) 
    height.times do |y| 
     row = params["r#{y}"].split(',') 
     row.size.times do |r| 
     pixel = row[r].to_s.split(':') 
     pixel[0] = pixel[0].to_s.rjust(6, '0') 
     if pixel.size == 2 
      pixel[1].to_i.times do 
      (data[y] ||= []) << pixel[0] 
      end 
     else 
      (data[y] ||= []) << pixel[0] 
     end 
     end 
     width.times do |x| 
     img.pixel_color(x, y, "##{data[y][x]}") 
     end 
    end 
    img.format = "PNG" 
    send_data(img.to_blob , :disposition => 'inline', :type => 'image/png', :filename => "chart.png?#{rand(99999999).to_i}") 
    end 

當控制器但是訪問時,我收到此錯誤頁面:

The change you wanted was rejected. 

Maybe you tried to change something you didn't have access to. 

而這個錯誤的日誌(它在heroku btw上運行):

ActionController::InvalidAuthenticityToken (ActionController::InvalidAuthenticityToken): 
    /home/heroku_rack/lib/static_assets.rb:9:in `call' 
    /home/heroku_rack/lib/last_access.rb:25:in `call' 
    /home/heroku_rack/lib/date_header.rb:14:in `call' 
    thin (1.0.1) lib/thin/connection.rb:80:in `pre_process' 
    thin (1.0.1) lib/thin/connection.rb:78:in `catch' 
    thin (1.0.1) lib/thin/connection.rb:78:in `pre_process' 
    thin (1.0.1) lib/thin/connection.rb:57:in `process' 
    thin (1.0.1) lib/thin/connection.rb:42:in `receive_data' 
    eventmachine (0.12.6) lib/eventmachine.rb:240:in `run_machine' 
    eventmachine (0.12.6) lib/eventmachine.rb:240:in `run' 
    thin (1.0.1) lib/thin/backends/base.rb:57:in `start' 
    thin (1.0.1) lib/thin/server.rb:150:in `start' 
    thin (1.0.1) lib/thin/controllers/controller.rb:80:in `start' 
    thin (1.0.1) lib/thin/runner.rb:173:in `send' 
    thin (1.0.1) lib/thin/runner.rb:173:in `run_command' 
    thin (1.0.1) lib/thin/runner.rb:139:in `run!' 
    thin (1.0.1) bin/thin:6 
    /usr/local/bin/thin:20:in `load' 
    /usr/local/bin/thin:20 

Rendering /disk1/home/slugs/149903_609c236_eb4f/mnt/public/422.html (422 Unprocessable Entity) 

任何人都知道什麼是去這裏?

回答

0

我已經想通了:

補充:需要 'RMagick'

&

skip_before_filter:verify_authenticity_token

我的課