【问题标题】:asset_url in mailer on rails 3.1rails 3.1邮件程序中的asset_url
【发布时间】:2011-12-12 20:17:27
【问题描述】:

我在 Rails 3.1 上有我的邮件,它有一个内联附件。

要打开该附件,我使用以下代码:

attachments["rails.png"] = File.read("#{Rails.root}/app/assets/images/Rails.png")

有没有办法用assets_url 之类的东西来改变它?

【问题讨论】:

  • 您不需要(也不想)为此使用asset_url之类的东西...它只会为您节省前几句话。此外,更短的版本:File.read(Rails.root.join('app/assets/images', 'Rails.png')),您可以从中制作自己的类似“asset_url”的助手。
  • 但我可以将我的资产放入供应商资产文件中,例如外部 js 文件,或者我想添加到电子邮件正文中的外部图像
  • 你能做类似File.read(Rails.root.join('public', view_context.asset_path('Rails.png'))) 的事情吗?它应该作为编译资产始终在公共/资产中工作。 view_context 可能不是必需的(或者它可能在 ActionMailer 中不可用:()但让我们试一试!

标签: ruby-on-rails-3 actionmailer asset-pipeline mailer


【解决方案1】:

如果我理解正确,您想使用资产管道的搜索功能来定位给定资产的本地路径,这样您就不必硬编码它所在的目录。如果是这种情况,您想这样做这个:

<YourAppName>::Application.assets.find_asset('Rails.png').pathname

这将使用标准管道/链轮搜索来定位资产,并为您提供文件的完全限定本地路径。

【讨论】:

  • 嗨,这给了我“app/assets/...”中的路径,但没有给出“public/assets”中的实际资产路径。虽然知道这一点很酷,但即使在生产环境中它没有给我我想要的目录。很高兴知道虽然我已经添加到我的笔记中。谢谢
猜你喜欢
  • 2011-12-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-07-15
  • 2012-01-29
  • 1970-01-01
  • 2011-10-25
  • 2014-11-09
相关资源
最近更新 更多