Ruby on rails Rails 3.0.7 ActionMailer附件问题

Ruby on rails Rails 3.0.7 ActionMailer附件问题,ruby-on-rails,attachment,actionmailer,Ruby On Rails,Attachment,Actionmailer,我试图将文件附加到发送的电子邮件,但附件大小最终为1字节。不管我转发什么附件,它总是以1字节大小的电子邮件结束(损坏)。我觉得其他一切都很好 电子邮件信息从IMAP帐户中提取并存储在数据库中以供浏览。附件存储在文件系统中,其文件名存储为电子邮件的关联记录 在视图中,可以选择将电子邮件转发给其他收件人。它在Rails2.3.8中工作,但是对于Rails3,我不得不更改方法的附件部分,所以现在看起来像 def forward_email(email_id, from_address, to_addr

我试图将文件附加到发送的电子邮件,但附件大小最终为1字节。不管我转发什么附件,它总是以1字节大小的电子邮件结束(损坏)。我觉得其他一切都很好

电子邮件信息从IMAP帐户中提取并存储在数据库中以供浏览。附件存储在文件系统中,其文件名存储为电子邮件的关联记录

在视图中,可以选择将电子邮件转发给其他收件人。它在Rails2.3.8中工作,但是对于Rails3,我不得不更改方法的附件部分,所以现在看起来像

def forward_email(email_id, from_address, to_address)
    @email = Email.find(email_id)
    @recipients = to_address
    @from = from_address
    @subject = @email.subject
    @sent_on = Time.now
    @body = @email.body + "\n\n"

    @email.attachments.each do |file|
      if File.exist?(file.full_path)
        attachment :filename => file.file_name, :body => File.read(file.full_path)
      else
        @body += "ATTACHMENT NOT FOUND: #{file.file_name}\n\n"
      end
    end
end
我也试过用

attachments[file.file_name] = File.read(file.full_path)
添加:mime_type和:content_type无效

任何帮助都将不胜感激


谢谢

文件可读吗?你能通过放置这样的东西来调试这个问题吗

logger.debug "File: #{file.full_path.inspect} : #{File.read(file.full_path).inspect[0..100]}"

您的开发日志中有什么内容吗?

嗯,rails团队的人回答了我的问题。问题在于在方法中添加除附件之外的正文内容(@body)。如果要附加文件,必须使用视图模板。

这是我尝试并为我工作的内容

 attachments.each do |file|
      attachment :content_type => MIME::Types.type_for(file.path).first.content_type, :body => File.read(file.path) 
 end

谢谢这是我在日志中看到的。。。文件:“/rails/jts/attachments\u development/2011/2815/14035482661(1分3秒)Voice Mail.wav”:“RIFFl\224\001\000wavemt\024\000\000\000\0001\000\001\000@\037\000\000Y\006\000\000A\000\000\002\00除此之外,在开发日志中没有任何值得注意的内容……附件[File.File\u name]={:content=>File.read(File.full\u路径)}然后,我在邮件底部看到了附件的文本版本,但邮件不知道它是附件。虽然我与Nokogiri合作过很多次,但邮件大小看起来不错。你可以把我当作付费开发人员(我的金额很小)。我看到