解決したい課題


AWS S3上のHTML.ERBテンプレートからローカルのRuby on Railsアプリケーションから値を埋め込みながらテンプレートを読み込むことでシンプルな動的なページを作りたいという課題です。

Ruby on Railsのサンプルソースコード


Ruby on Railsアプリケーションでは以下のようなコードを使用して、AWS S3にアップロードしたHTML.ERBテンプレートを読み込みます。

# テンプレートをOpenしてレンダリングする
template_file_path = 'aws_s3_path/template.html.erb'
template = File.open(template_file_path, 'r:UTF-8') { |f| f.read }
data = { title: 'Rails Template Rendering Example' }
rendered_template = ERB.new(template).result_with_hash(data)


AWS側の設定方法


AWS側では、HTML.ERBテンプレートファイルをAWS S3にアップロードするだけで読み込み権限が有効になるので、特に設定は必要ありません。

この方法を活用する際のメリット


この方法を活用することで、Ruby on Railsで動的な(ActiveRecordの値を入れた)HTMLページを快適に作成することができます。また、AWS S3を使用することで、古いバージョンの管理も容易に行うことができます。

投稿者: systemreach_engineer