2010-04-06 2 views
0

J'utilise AMCharts et rails. AMCharts utilise la bibliothèque Image Magic pour exporter une image du graphique. Dans les rails, cela est fait avec la gemme, RMagic.RMagic Erreur dans les rails, avec les cartes AM

Dans un contrôleur cela est mis en œuvre avec la méthode de commande suivante:

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 

Lorsque le contrôleur est accessible cependant, je reçois cette erreur sur la page:

The change you wanted was rejected. 

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

Et cette erreur dans le logs (son fonctionnant sur 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) 

Quelqu'un a une idée de ce qui est passe ici?

Répondre

0

Je l'ai pensé à elle:

ajouté: require 'RMagick'

&

skip_before_filter: verify_authenticity_token

à ma classe

Questions connexes