Как использовать вспомогательный метод, подобный этому, из application_helper.rb
:
def upload_s3(region, file, bucket, filepath)
s3 = Aws::S3::Resource.new(region: region)
obj = s3.bucket(bucket).object(filepath)
obj.upload_file(file)
end
Внутри миграции:
class CreateSeeds < ActiveRecord::Migration[6.0]
pdf = "https://#{bucket}.s3.#{region}.amazonaws.com/#{record["filepath"]}"
name = tokenize_by_delimiter_case(".", record["filepath"], 0)
path = "items/#{name}"
upload_s3(region, pdf, bucket, path)
end
Я знаю, что могу использовать метод модели, но я я не хочу копировать и вставлять кучу одних и тех же методов в модели только для миграции ... в противном случае у меня не было бы помощников.
Я получаю эту ошибку при попытке запустить мой миграция:
NoMethodError: undefined method `upload_s3' for #<CreateSeeds:0x00007fe4ee12bbc0>