MIME_TYPES
定数ハッシュにいくつかの項目を追加して、既存のモジュール (つまり Redmine::MimeType) を拡張する必要があります。
これは私がこれまでに試したことであり、「動的定数割り当て」エラーのみが表示されます。
module MimeTypePatch
def self.included(base) # :nodoc:
base.extend(ClassMethods)
base.class_eval do
MIME_TYPES_VIDEO = {
'video/x-flv' => 'flv,f4v',
'video/mpeg' => '*.mpeg *.mpg *.mpe',
'video/quicktime' => 'qt,mov',
'video/vnd.vivo' => 'viv,vivo',
'video/x-msvideo' => 'avi'
}.freeze
# merge the new mime types with the existing ones
MIME_TYPES = MIME_TYPES.merge(MIME_TYPES_VIDEO).freeze
EXTENSIONS = MIME_TYPES.inject({}) do |map, (type, exts)|
exts.split(',').each {|ext| map[ext.strip] = type}
map
end
end
end
end
では、何が間違っているのでしょうか。また、別のモジュールの既存の定数を変更するための正しいアプローチは何でしょうか? 実行時に定数を変更するのは少しずれていることがわかりますが、私が望むものを達成するためのより洗練されたアプローチ (ビデオ MIME タイプの検出) は考えられませんでした。