Ruby on rails 正在分析带有回形针的电子邮件附件-可能没有临时文件?

Ruby on rails 正在分析带有回形针的电子邮件附件-可能没有临时文件?,ruby-on-rails,ruby-on-rails-3,paperclip,actionmailer,Ruby On Rails,Ruby On Rails 3,Paperclip,Actionmailer,heroku上的我的rails 3应用程序接收收到的电子邮件。我希望能够接受附件,但无法让rails无误地处理附件 理想的做法是通过ActionMailer提供的附件 message_all = Mail.new(params[:message]) message_all.attachments.each do |a| attachments.each do |a| .attachments.build( :attachment => a ) end end 它的错误是

heroku上的我的rails 3应用程序接收收到的电子邮件。我希望能够接受附件,但无法让rails无误地处理附件

理想的做法是通过ActionMailer提供的附件

message_all = Mail.new(params[:message])
 message_all.attachments.each do |a|
 attachments.each do |a|
 .attachments.build(
   :attachment => a
  )
 end
end
它的错误是:
NoMethodError(未定义的方法
revind'for#)` 其中附件为模型,附件为回形针

好主意吗?是否有其他方法将附件=a传递到回形针

我尝试了另一种方法,创建临时文件:

tempfile = File.new("#{Rails.root.to_s}/tmp/#{a.filename}", "w+")
tempfile << a.body
tempfile.puts
attachments.build(
:attachment => File.open(tempfile.path) )
tempfile=File.new(“#{Rails.root.to_s}/tmp/#{a.filename}”,“w+”)
tempfile.open(tempfile.path))
tempfile的问题是没有扩展名“blah”而不是“blah.png”的文件正在破坏回形针,这就是为什么我想要避免使用tempfile。创建标识错误时,imagemagick不知道这些错误是什么,没有ext


非常感谢您在这方面的建议。

您使用的方法的问题在于,它们没有包含回形针的所有必要信息,如内容类型和原始文件名。不久前,我写了一篇关于这一点的文章,以及如何伪造格式并将电子邮件附件用作回形针附件

底线是这样做:

file = StringIO.new(attachment)
file.class.class_eval { attr_accessor :original_filename, :content_type }
file.original_filename = attachment.filename
file.content_type = attachment.mime_type

第一行可能应该是file=StringIO.new(attachment.decoded)@Steve您的博客已关闭。@非常感谢您的提醒。现在对我来说似乎还不错。希望只是暂时的小故障。