У меня есть продукт Rails ActiveModel с колонкой Paperclip image attachment
, которая должна получить его image.url
из 2 источников. Один из них - старое ведро S3/CloudFront, другое - наше новое ведро S3/CloudFront. У них совершенно разные учетные данные.Динамический url скрепки скрепки?
Если «instance Product.image_file_name
» содержит «старые», я хочу, чтобы URL-адрес был чем-то вроде cloudfront_url/products/file_name
, если это не так - он должен использовать новый ведро S3/CloudFront. Загрузка будет происходить только на новом ведре S3, но она будет отложена на старой, если image_file_name
содержит old:
, как я уже упоминал.
В настоящее время я уполномочен только на новый ковш S3, а не на старый.
Я прочитал, что я должен сделать что-то вроде:
class Product
has_attached_file: :image, url: dynamic_url_method
def dynamic_url_method
.... do some logic based on image_file_name
return constructed_url
end
end
Однако, когда я делаю это, я получаю неопределенную локальную переменную dynamic_url_method.
Если я оберну его в лямбда, как указано в https://stackoverflow.com/a/10493048, я получаю Error "no implicit conversion of Proc into String"
.
Успешно ли вы получили Paperclip для работы с динамическим URL? Если вы знаете, как это сделать, это будет спасать жизнь.
Это должен быть символ: 'has_attached_file:: изображение, URL:: dynamic_url_method', вы пропустили двоеточие. Что немного беспокоит, так это то, что лямбда должна работать. Не могли бы вы вставить stacktrace ошибки, которую вы получаете? – BroiSatse