validates_attachment_content_type
配置应该是什么才能上传代码文件。在我的情况下,我想上传.R文件。
我想做这样的事情:
class RFile < ActiveRecord::Base
has_attached_file :r, url: "/system/:attachment/:id/:basename.:extension"
validates_attachment_content_type :r, content_type: 'text/r'
end
我是否必须定义mime类型?我该怎么做?
修改
使用此代码,使用text/plain
:
class RFile < ActiveRecord::Base
has_attached_file :r, url: "/system/:attachment/:id/:basename.:extension"
validates_attachment_content_type :r, content_type: 'text/plain'
end
我收到以下错误:
R has contents that are not what they are reported to be
R is invalid
R content type is invalid
我查看了这个mime类型列表
http://hul.harvard.edu/ois/systems/wax/wax-public-help/mimetypes.htm
但是我找不到.R文件的那个。但是在执行此命令时:
file --mime-type compare_datasets.R
我得到了这个结果:
compare_datasets.R: text/plain
为什么text/plain
不起作用?
答案 0 :(得分:1)
对于代码文件,您可以使用text/plain
MIME类型。
validates_attachment_content_type :r, :content_type => 'text/plain'
可以找到许多此类文件结尾here
答案 1 :(得分:0)
我设法通过在mime类型初始化程序中执行此操作来实现它:
Paperclip.options[:content_type_mappings] = {r: "text/plain"}
这在模型中:
class RFile < ActiveRecord::Base
has_attached_file :r, url: "/system/:attachment/:id/:basename.:extension"
validates_attachment_file_name :r, matches: [/r\Z/, /R\Z/]
do_not_validate_attachment_file_type :r
end