私のウェブホストはHerokuで、ファイルをローカルファイルシステムに保存することはできません。そのため、Carrierwaveを使用してファイルをAmazonS3に保存しています。
コンソールでは、次のことに気づきます。
Photo.last.attachment.url
それは戻ります:
=> "https://foobar.s3.amazonaws.com/uploads/users/1/photos/7/foo.jpg"
予想通り。ただし、コンソールでのこのプロセス(値を返すプロセス)には2〜3秒かかります。私の推測では、S3にアクセスしようとしていると思います。さらに悪いことに、複数の写真を含むWebページをロードすると、ロードにかなりの時間がかかります。
S3を介してファイルをリモートで保存しているため、「Photo.last.attachment.url」から結果をキャッシュする必要があるとのことです。
つまり、私のデータベースには2つの列が必要です。
:attachmentおよび:attachment_url
:attachmentはCarrierwaveアップローダーオブジェクト用であり、:attachment_urlはS3ファイルへの直接リンクです。
これは私がすべきことですか?より良い代替案はありますか?