解決したい課題
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を使用することで、古いバージョンの管理も容易に行うことができます。