私のアプリケーションでは、ユーザーはテキスト ドキュメントをアップロードする必要があり、そのコンテンツは受信側のコントローラー アクションによって解析されます。ドキュメントを正常にアップロードできましたが、内容を読み取ることができません。
この問題にはいくつかのスレッドがあります。これらのスレッドで推奨されていることは多かれ少なかれすべて試しましたが、まだ問題を解決できません。
これが私のコードです:
file_data = params[:file]
contents = ""
if file_data.respond_to?(:read)
contents = file_data.read
else
if file_data.respond_to?(:path)
File.open(file_data, 'r').each_line do |line|
elts = line.split
#
#
end
end
end
ここに私の問題があります: file_data は 'respond_to?' ではありません。:read または :path のいずれかです。このトピックに関する他のスレッドによると、アップロードされたファイルが特定のサイズ未満の場合、文字列として解釈され、:read に応答します。それ以外の場合は、:path に応答する必要があります。しかし、私のコードでは、どちらにも応答しません。
if ステートメントを削除してすぐに File.open(file_data, 'r') を実行しようとすると、ファイルが見つからないというエラーが表示されます。
誰かが何が間違っているかを知るのを手伝ってもらえますか?
PS、これは冗長な質問で本当に申し訳ありませんが、他のスレッドは役に立たないことがわかりました.