In einem meiner Rails-Controller versuche ich eine Base64-codierte Zeichenfolge zu nehmen, zu dekodieren und in eine Datei (.png) zu schreiben. Hier ist mein Code:Base64-codierte Zeichenfolge in Datei (Ruby on Rails) - undefinierte Methode `entpacken 'Fehler
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
ich die folgende Fehlermeldung erhalten:
undefined method `unpack' for #<ActiveSupport::HashWithIndifferentAccess:0x1044b22d8>
Was falsch ist hier los?
Edit: Eine wirklich seltsame Sache ist, dass der Code zum Schreiben der Datei einwandfrei in Schienen-Konsole funktioniert, aber nicht beim Ausführen der Anwendung.
Welche Ausgabe erhalten Sie, wenn Sie die Variable '@ base64' protokollieren oder drucken? – sarnold