1
私は混乱のエラーを持っている:Railsの3 - ペーパークリップ:初期化されていない定数ActionDispatch ::要求::にUploadedFile
私はRubyの上のRails 3.0.0を実行するには、ペーパークリップ2.3.5と1.9.2。
ファイルをアップロードすると、500エラーが発生します。
NameError (uninitialized constant ActionDispatch::Request::UploadedFile):
config/initializers/fix_params.rb:13:in `normalize_parameters'
config/initializers/fix_params.rb:19:in `block in normalize_parameters'
config/initializers/fix_params.rb:19:in `each'
config/initializers/fix_params.rb:19:in `normalize_parameters'
config/initializers/fix_params.rb:19:in `block in normalize_parameters'
config/initializers/fix_params.rb:19:in `each'
config/initializers/fix_params.rb:19:in `normalize_parameters'
Rendered /Users/vjmayr/.rvm/gems/ruby-1.9.2-p0/gems/actionpack-3.0.0/lib/action_dispatch/middleware/templates/rescues/diagnostics.erb within rescues/layout (10.2ms)
私が見てきた同様のことは、Railsの3.0.2と0.3で起こるが、それはここではなぜ起こるか私にはわかりません。誰も私の問題を見つけるのを助ける?
ありがとうございます!バレンティン
ADDEDの設定/初期化子/ fix_params.rb:
module ActionController
class Request
private
# Convert nested Hashs to HashWithIndifferentAccess and replace
# file upload hashs with UploadedFile objects
def normalize_parameters(value)
case value
when Hash
if value.has_key?(:tempfile)
upload = value[:tempfile]
upload.extend(UploadedFile)
upload.original_path = value[:filename]
upload.content_type = value[:type]
upload
else
h = {}
value.each { |k, v| h[k] = normalize_parameters(v) }
h.with_indifferent_access
end
when Array
value.map { |e| normalize_parameters(e) }
else
value.force_encoding(Encoding::UTF_8) if value.respond_to?(:force_encoding)
value
end
end
end
end
'これはRailsの非標準的な拡張であり、誤動作の可能性があります。たぶんあなたは質問を修正し、そこにあるものの詳細を追加することができます。 – tadman
こんにちはtadman、私は私の質問にfix_params.rbを追加しました。私は元のインストールからそれをそのまま残しました。 –