Я использую ActiveStorage для пользовательских таблиц стилей, которые будут загружены на s3 для включения их в пользовательскую веб-страницу в пользовательском стиле.
Поэтому у меня есть модель CustomeTheme
has_one_attached :style, dependent: :purge_later
и обратный вызов after_save, который выполняет загрузку после сохранения пользовательского стиля
self.style.attach(io: File.open(File.join(asset_path, name)), filename: name, content_type: 'text/css')
Включен в макет
= stylesheet_link_tag url_for(@custom_theme.style)
Теперь проблема в том, что пользователь сохраняет стиль и ивидит предварительный просмотр пользовательской веб-страницы, но без пользовательского стиля (404 на данный момент), поскольку загруженный на s3 еще не закончил, по крайней мере, это то, что я предполагаю.
to_model delegated to attachment, but attachment is nil
/usr/local/bundle/gems/activesupport-5.2.1/lib/active_support/core_ext/module/delegation.rb:278:in `rescue in method_missing'
/usr/local/bundle/gems/activesupport-5.2.1/lib/active_support/core_ext/module/delegation.rb:274:in `method_missing'
/usr/local/bundle/gems/actionpack-5.2.1/lib/action_dispatch/routing/polymorphic_routes.rb:265:in `handle_model'
/usr/local/bundle/gems/actionpack-5.2.1/lib/action_dispatch/routing/polymorphic_routes.rb:280:in `handle_model_call'
/usr/local/bundle/gems/actionview-5.2.1/lib/action_view/routing_url_for.rb:117:in `url_for'
Таким образом, вопрос для меня остается неясным, как я могу знать, что актив (независимо от того, является ли он стилем или изображением) готов для отображения?