Error RMagic en los carriles, con AM Gráficas
-
24-09-2019 - |
Pregunta
Estoy usando amCharts y rieles. AmCharts utiliza el lib magia de imagen para exportar una imagen de la carta. En los carriles esto se hace con la gema, RMagic.
En un controlador de esto se implementa con el método siguiente controlador:
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
Cuando se accede sin embargo el controlador, recibo este error en la página:
The change you wanted was rejected.
Maybe you tried to change something you didn't have access to.
Y esto error en los registros (que se ejecuta en su heroku por cierto):
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)
Alguien tiene alguna idea de lo que está pasando aquí?
Solución
He lo descubrió:
añadido: require 'RMagick'
&
skip_before_filter: verify_authenticity_token
a mi clase
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow