私のアプリのseeds.rb
では、テスト目的で使用するテンプレートオブジェクトを作成します。通常、テンプレートは、アップロードされたファイルを必要とするフォームを通じて作成されます。ファイルはS3に格納され、urlは属性としてTemplateオブジェクトに追加されます。Rails ActiveRecordファイルパラメータを使用して作成
シードファイル内のファイル本文とファイル名を渡して、テンプレートオブジェクトにURLが正しく設定されるようにするにはどうすればよいですか?
seeds.rb
# need to include params[:template][:body].tempfile
# and params[:template][:body].original_filename
template = user.templates.new(name: 'test_template.docx')
template.save
templates_controller.rb
def create
# upload to s3
file_name = params[:template][:body].original_filename
s3 = Amazon::S3.resource
obj = s3.bucket(User.directory_bucket).object(current_user.uuid + '/templates/' + file_name)
obj.upload_file(params[:template][:body].tempfile)
# create template
@template = Template.create(name: file_name, url: obj.public_url, user_id: params[:template][:user_id])
# redirects/response
end
S3のseeds.rbファイルに参照するファイルを保存しますか?あるいは、あなたはtest_template.docxがちょうどローカルに生きていけることを望んでいますか? – kcdragon
私はS3にファイルを保存したいと思います。テストデータは後で清掃されます – Tyler