小编Gar*_*son的帖子

如何使用 Rails 中的 Paperclip gem 上传 Outlook 文件(.msg 扩展名)

我需要能够将电子邮件附加到模型,特别是 .eml 和 .msg 文件

Paperclip 现在需要验证使用它上传的文件类型。

我的代码中这些验证所在的部分在这里:

validates_attachment_content_type :supporting_document,
:content_type => ['application/pdf', 'application/vnd.ms-excel',
                  'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
                  'image/jpeg', 'image/jpg', 'image/png',
                  'application/vnd.ms-excel.sheet.macroEnabled.12', 'application/msword',
                  'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
                  'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',EML_MIMETYPE],
:message => 'incorrect file type.'
Run Code Online (Sandbox Code Playgroud)

最后一部分 EML_MIMETYPE 用于 .eml 文件,并定义为常量:

EML_MIMETYPE = 'message/rfc822'

我通过在终端中对测试 .eml 文件使用 file 命令找到了 .eml 文件的正确 MIME 类型:

$ file -b --mime-type ~/Desktop/noname.eml

但是,当我对示例 .msg 文件执行此操作时,它会返回看起来像是损坏的 MIME 类型的内容

$ file -b --mime-type ~/Desktop/testemail.msg
>application/CDFV2-corrupt
Run Code Online (Sandbox Code Playgroud)

在线查看,此链接http://social.msdn.microsoft.com/Forums/en-US/8efe300d-c917-4be7-a0f3-e620e029842b/what-mime-type-can-i-use-for-msg-files ?forum=netfxnetcom建议也许使用 MIME 类型“application/vnd.ms-outlook”,但我没有运气。

有什么建议么?我正在运行 linux xubuntu 14.04,该应用程序使用 Rails 3.2.18 和 ruby​​ 1.9.3p392

ruby outlook ruby-on-rails paperclip-validation

6
推荐指数
1
解决办法
1467
查看次数

如何在 gem 的示例脚本中使用 pry-byebug?

我正在努力制作我的第一个 gem,它不是一个 Rails 应用程序,它是一个井字游戏库,其中包含一些 AI,因此我可以玩一个永远不会输的计算机对手,并在可能的情况下强制获胜。

现在,我尝试调试在AI的攻击策略,但我似乎无法弄清楚如何获得撬byebug在我的测试脚本工作,specfically,有这样的调试命令stepnext等工作后击中binding.pry.

名为 smart-tac-toe 的 gem 具有以下目录结构:

$ ls smart-tac-toe
example  Gemfile  Gemfile.lock  Guardfile  lib  LICENSE.txt  Rakefile  README.md  smart_tac_toe.gemspec  spec  tmp
Run Code Online (Sandbox Code Playgroud)

正如您在上面看到的,我的 gem 中有一个“example”目录,其中包含“example.rb”,我在其中使用了我创建的类。

但是,当我使用binding.pry并尝试使用stepand 时next,Pry 会话会退出并且脚本继续运行。

在我的 smart_tac_toe.gemspec 文件中,我显然有 pry-byebug:

spec.add_development_dependency "pry-byebug", '~>2.0.0'
Run Code Online (Sandbox Code Playgroud)

在我的 example.rb 文件的顶部,我尝试要求正确的 gems:

require 'pry'
require 'pry-byebug'
require "../lib/smart_tac_toe.rb"
Run Code Online (Sandbox Code Playgroud)

我正在使用 Ruby 2.1.1p76 ,这个 gem 的 repo 位于https://github.com/discotroll65/smart_tac_toe

此外,虽然将 binding.pry 放入我的示例脚本中确实让我进入了调试会话,但最初它处于阅读模式,我必须按q退出才能开始执行 repl 操作。关于为什么会这样的任何想法?

ruby debugging gem rubygems pry

6
推荐指数
1
解决办法
8569
查看次数

制作特定文件大小的测试 PDF 的简单方法

想要测试应用程序中的上传文件大小限制,并且发现/制作特定大小的各种 pdf 来测试/调试这一点是一件痛苦的事情。有人有更好的办法吗?

pdf testing file-upload file filesize

5
推荐指数
1
解决办法
1万
查看次数