Ruby on rails Base64编码字符串到文件(Ruby on Rails)-未定义的方法“unpack';错误

Ruby on rails Base64编码字符串到文件(Ruby on Rails)-未定义的方法“unpack';错误,ruby-on-rails,base64,activesupport,unpack,Ruby On Rails,Base64,Activesupport,Unpack,在我的一个Rails控制器中,我试图获取Base64编码的字符串,对其进行解码并将其写入文件(.png)。这是我的密码: def create_character @character = Character.new(params[:character]) @base64 = params[:base64] File.open("app/assets/images/characters/#{@character.name.gsub(/\s+/, "")}-#{@chara

在我的一个Rails控制器中,我试图获取Base64编码的字符串,对其进行解码并将其写入文件(.png)。这是我的密码:

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
我得到以下错误:

undefined method `unpack' for #<ActiveSupport::HashWithIndifferentAccess:0x1044b22d8>
的未定义方法“unpack”#
这里出了什么问题


编辑:一件非常奇怪的事情是,用于编写文件的代码在rails控制台中工作得非常好,但在运行应用程序时却不行。

看起来您正试图将哈希传递到解码方法中。您确定不应该执行
@base64=params[:character][:base64]

当我将数据类型从字符串修改为文本时,出现了
解包
错误。

记录或打印
@base64
变量时,您得到了什么输出?