Paperclip を介して S3 に background_image をアップロードできるサイト モデルがあります。奇妙な点は、各サイトのモデルに独自の S3 クレデンシャル ストアがあることです。私の質問はこれです。Paperclip 経由でアップロードするときに、サイト自体の属性を参照するにはどうすればよいですか?
class Site < ActiveRecord::Base
attr_accessible :background_image,
:s3_access_key_id,
:s3_secret_access_key,
:s3_username
has_attached_file :background_image,
storage: :s3,
s3_credentials: {
access_key_id: @s3_access_key_id.to_s,
secret_access_key: @s3_secret_access_key.to_s
},
bucket: "my-app",
s3_permissions: "public-read",
path: "/home/#{@s3_username}/background_images/:id/:filename"
end
残念ながら、このセットアップではThe AWS Access Key Id you provided does not exist in our records
. データベースから値をハードコーディングすると正常に機能するため、空白の値を取得しているだけだと思います。