rails6 refileを使用して画像をアップロードする

rails6 refileを使用して画像をアップロードする

rails6で、refileを使用して画像をアップロードするまでの手順を記述してます。railsのバージョンは6.1.0です。

環境

  • OS ubuntu20.10
  • ruby 2.7.2
  • rails 6.1.0
  • Postgresql 13.1 (dockerで構築)

refile導入

Gemfileに以下を追加します。

インストールを行います。

CRUD作成

scaffoldで「CRUD」を作成してテストしてみます。

「db/migrate」ディレクトリ配下にある、マイグレーションファイル「xxxxx_create_cars.rb」を以下のように編集します。

マイグレーションを実行します。

テーブル「cars」

コントローラー編集

「app/controllers」ディレクトリ配下にある「cars_controller.rb」の「car_params」を以下の通りに編集しておきます。

テンプレート編集

「app/views/cars」ディレクト配下にある、「_form.html.erb」に以下を追加します。

アップロード確認

ブラウザから http://プライベートIP or サーバーアドレス:3000/cars/new にアクセスします。

※CSSは「materialize-css」を使用しています。

タイトルとファイルを選択して「Create Car」をクリックしてアップロードを行います。

テーブル「cars」にname「foo」が追加されていることが確認できまs。

画像を確認するには「app/views/cars」ディレクト配下にある、「show.html.erb」に以下を追加します。

showリンクをクリックして、確認してみます。

secret_keyが設定されていなければ、以下のエラーが発生します。

「config/initializers」ディレクトリ配下にある「application_controller_renderer.rb」に記述されている「secret_key」をそのまま追加します。

これでrailsを再起動を行うと画像が表示されるようになると思います。