【发布时间】:2026-02-19 09:10:01
【问题描述】:
如何在 Rake 任务中访问 asset_url 或 asset_path Sprockets URL 帮助程序?
我有一个 Rake 任务,它使用一些模型为数据库播种。其中一个模型具有 Rails 应用程序中资产的 URL。如何在 Rake 任务中为该资产创建 URL?
SomeModel.create(image: asset_url('awesome.png'))
目前我对这个问题的解决方案真的很糟糕。
path = URI.join(Rails.application.routes.url_helpers.root_url, '/assets/images/awesome.png')
SomeModel.create(image: path.to_s)
【问题讨论】:
-
asset_url和asset_path这个助手只在 sass 或 scss 中可用。 -
你为什么使用非相对路径?为什么需要用这些图像为数据库播种?
-
我假设您正在尝试了解为什么我需要在这种特殊情况下执行此操作,并帮助我找到更好/更简单的解决方案。谢谢,尽管我确实需要不止 1 个 Rake 任务中的asset_url/asset_path 助手。 @jaysqrd,您知道启用此功能的方法吗?
-
我想知道是否值得花时间构建更简单的东西。可以通过此module 访问
asset_path。您可能需要初始化您的应用程序才能这样做(不确定rake是否会默认这样做)。更简单的方法可能是在模型上提供默认图像,或者只是硬编码种子中的路径。像这样重用逻辑是不值得的,如果它不太可能改变的话。
标签: ruby-on-rails ruby rake sprockets