keruuRailsでopen-uriを使ってダウンロードした画像をデータベース(以下、DB)に格納する方法です。画像用のモデルを作る。Imageモデルを作ります。ApplicationRecordendマイグレーションは次のような感じで、binary型の画像データをカラムに持つようにします。画像をダウンロードする。画像をダウンロードはopen-uriを使うと簡単です。例として架空のURLであるhttp://example.com/example.jpgを対象としてダウンロードし、image変数に格納します。画像をDBに格納する。step2でダウンロードした画像をImageモデルに保存します。readで画像データを取り出して、dataカラムに格納しています。create!で作成と同時に保存します。image.read)これでDBに画像が格納されました。使い方BDに保存した画像をブラウザで表示してみます。単純にImage.dataの値をブラウザで表示するというわけには行かず、次のステップを踏みます。画像データを取得するためのルーティングを設定します。アクセスがあったときに画像を返すようにしてみます。routes.rbを開き、/imageへアクセスがあったときにapiコントローラのimageアクションが呼ばれるようにルーティングを追加します。DBに格納した画像を返す。DBに格納した画像を返すには、send_dataメソッドを使ってブラウザが読めるように画像データを生成します。apiコントローラに次のように記述します。例なのでImageモデルの先頭レコードの画像データを返しています。endendこれで、ブラウザでhttp://ドメイン/imageにアクセスすると、画像データが返ってきます。http://ドメイン/image.jpgでもいけます。