CSVファイルを解析するためにこれがあります:
csv_file = CSV.parse(
  file.read(),
  headers:              true,
  header_converters:    :symbol
)
動作しますが、エンコーディングタイプを指定したいので{encoding: 'UTF-8'}、以下のようにreadメソッドに:を追加します。
csv_file = CSV.parse(
  file.read({encoding: 'UTF-8'}),
  headers:              true,
  header_converters:    :symbol
)
しかし、私はこのエラーを受け取ります:ハッシュを整数に変換できません
何が悪いのかわかりません。ドキュメントを確認しましたが、そのようにエンコーディングを渡すことができると書かれていますが、最初の引数としてファイルが必要なので、そこでストールする可能性がありますが、どのファイルが読み取られているかはすでにわかっているので、問題ないはずです。
どうすればこれを解決できますか?
アップデート:
私は以下に更新しました:
def import
  if params[:import_coasters]
    file = params[:import_coasters][:file]
    Park.import_from_csv(file)
def self.import_from_csv(file)
  Park.destroy_all
と
  csv_file = CSV.parse(
    File.read(file, {encoding: 'UTF-8'}),
    headers:              true,
    header_converters:    :symbol
  )
しかし、次のエラーが発生します。
ActionDispatch :: Http::UploadedFileを文字列に変換できません