2

こんにちは、refile gem を使用して S3 に直接画像をアップロードしようとしています。

project.rb は次のようになります

class Project < ActiveRecord::Base
    has_many :photos, :class_name => "Project::Photo", dependent: :destroy
    accepts_attachments_for :photos
end

プロジェクト/写真.rb

class Project::Photo < ActiveRecord::Base
    belongs_to :project

    attachment :file

    attr_accessible :name, :address, :created_at, :project_id, :file
    before_create :debugging_create


end

config/initializers/refile.rb

require "refile/s3"

aws = {
  access_key_id: "xyz",
  secret_access_key: "abc",
  region: "sa-east-1",
  bucket: "my-bucket",
}
Refile.cache = Refile::S3.new(prefix: "cache", **aws)
Refile.store = Refile::S3.new(prefix: "store", **aws)

Refile.backends からの出力 [画像 1]

Refile.backends からの出力

photos_files の場合、ファイル アップロードの Params は次のようになります [画像 2]

photos_files の場合、ファイル アップロードのパラメータは次のようになります。

問題:

  1. Amazon S3 に保存されているデータベースのキーを取得して保存できません。Refile.backends には異なるキーが表示されます。
  2. 更新時に新しいファイルを保存する方法。現在、既存のファイルを上書きします。
4

0 に答える 0