En uno de mis controladores Rails estoy tratando de tomar una cadena codificada en Base64, decodificarla y escribirla en un archivo (.png). Aquí está mi código:Cadena codificada de Base64 a archivo (Ruby on Rails) - método indefinido `unpack 'Error
def create_character
@character = Character.new(params[:character])
@base64 = params[:base64]
File.open("app/assets/images/characters/#{@character.name.gsub(/\s+/, "")}-#{@character.author_name.gsub(/\s+/, "")}.png", 'wb') do |f|
f.write(Base64.decode64(@base64))
end
if @character.save
flash[:notice] = "Character created."
redirect_to(:action => 'share')
else
estoy consiguiendo el error siguiente:
undefined method `unpack' for #<ActiveSupport::HashWithIndifferentAccess:0x1044b22d8>
lo que está mal aquí?
Editar: Una cosa realmente extraña es que el código para escribir el archivo funciona perfectamente bien en la consola de rieles, pero no cuando se ejecuta la aplicación.
¿Qué salida obtiene cuando registra o imprime la variable '@ base64'? – sarnold