Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails—在数据库中存储ActionMail.new对象_Ruby On Rails_Actionmailer - Fatal编程技术网

Ruby on rails Rails—在数据库中存储ActionMail.new对象

Ruby on rails Rails—在数据库中存储ActionMail.new对象,ruby-on-rails,actionmailer,Ruby On Rails,Actionmailer,我正在创建一个邮件对象,如下所示: textpart_to_inject= params[:text] htmlpart_to_inject= params[:html] message_all = Mail.new do to #{params[:to]} from #{params[:from]} subject #{params[:subject]} text_part do body textpart_to_inject en

我正在创建一个邮件对象,如下所示:

 textpart_to_inject= params[:text]
 htmlpart_to_inject= params[:html]

  message_all = Mail.new do
    to #{params[:to]}
    from #{params[:from]}
    subject #{params[:subject]}
    text_part do
      body textpart_to_inject
    end
    html_part do
      content_type 'text/html; charset=UTF-8'
      body  htmlpart_to_inject
    end
  end
然后我想将其插入数据库,如下所示:

@incoming_mail = IncomingMail.create(:message_all => Base64.encode64(message_all), :message_plain => Base64.encode64(params[:text]))
但这是一个错误:

TypeError (can't convert Mail::Message into String):
  app/controllers/incoming_mails_controller.rb:56:in `create'
我的数据库列如下: 留言 消息\u纯文本


想法?谢谢

您看过Rails的
序列化方法了吗?听起来这正是你想要做的。请参阅文档(另请查看标题“在文本列中保存数组、散列和其他不可映射对象”下顶部约1/6的部分)。它甚至可能像添加

serialize :message_all
serialize :message_plain
你的收入邮件模型,但不要相信我的话

顺便说一下,出现错误是因为
Base64.encode64()
只对字符串有效


希望这有帮助

那么,您正试图将整个邮件对象以字节的形式存储到数据库中?如果可能的话,那将是非常棒的!!!有办法吗?我不知道字节部分,但我确实想要邮件对象