1

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ですか?

4

2 に答える 2

1

コード ファイルの場合は、text/plainMIME タイプを使用できます。

validates_attachment_content_type :r, :content_type => 'text/plain'

そのようなファイルの末尾の数はここにあります

于 2016-03-09T15:11:47.130 に答える
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
于 2016-03-10T18:24:48.780 に答える