Railsでのファイルのアップロード-データはオブジェクトですが、どのようにそれをビューに返すのですか?

StackOverflow https://stackoverflow.com/questions/1608312

  •  05-07-2019
  •  | 
  •  

質問

Railsプロジェクトでアップロードを実行すると、データベースに保存されます

---!ruby / object:File content_type:application / octet-stream original_path:my.numbers

自分のビューでのみmy.numbersを返すようにするにはどうすればよいですか?

たくさんありがとう! マルコ

ps。できればattachment_fuやその他のプラグインは使いたくありません。

役に立ちましたか?

解決

実際には、ファイルのアップロードはデータではなくFileオブジェクトとしてコントローラーによって受信されるため、読み込むのはユーザーの責任です。通常、アップロードされたファイルは一時ディレクトリに保存され、そのファイルハンドルが開いていますparams。

データを取得するには、次のようなことができます:

def create
  # Read in data from file into parameter before creating anything
  if (params[:model] and params[:model][:file])
    params[:model][:file] = params[:model][:file].read
  end

  @model = MyModel.create(params[:model])
end

おそらく、データベースの列にバイナリデータを格納できることを確認する必要があります。 MySQLの移行では、これは:binary列タイプです。

他のヒント

ヘルパーoriginal_filenameを使用して、アップロードされたファイルの名前にアクセスできます。 params [:model] [:file] .original_filename

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top