ruby-on-rails - image_tag 不使用 asset_host

标签 ruby-on-rails ruby ruby-on-rails-3

在生产中,当我在邮件 View 中调用 image_tag 时,图像 url 反射(reflect)了我设置的 Assets 主机。但是,当我在 lib/中的模块中调用 ActionController::Base.helpers.image_tag 时,它不会反射(reflect) Assets 主机。

这是在生产环境中。

production.rb

  config.action_mailer.asset_host =
    config.action_controller.asset_host = Proc.new do |source|
      "https://mycustomhost.com"
    end

生产控制台:

irb(main):001:0> ActionController::Base.helpers.image_tag("my_asset.jpg") => ...src=\"/my_app/my_asset-b00c676835d609cc1aed3ce6e7018ee1.jpg\"..

Documentation建议我需要在 ActionController::Base 上设置 asset_host。我已经尝试在控制台中设置 ActionController::Base.asset_host/在 production.rb 中设置它并重新启动 nginx,然后运行 ​​ActionController::Base .image_tag,但它仍然没有返回带有 Assets 主机的图像 url。

有什么想法吗?

最佳答案

我通过从邮件程序获取 view_context 并在其上调用辅助方法来实现它。它并没有解释为什么 ActionController::Base.helpers.image_tag 没有从 asset_host 中读取,但是因为我本质上是在尝试复制 的行为>ActionViewimage_tag,这种做法似乎更好。

关于ruby-on-rails - image_tag 不使用 asset_host,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35192401/

相关文章:

ruby-on-rails - 如何在 Capybara 测试中用 Rspec 淘汰 Warden/Devise

ruby-on-rails - 未知验证器 : 'BeforeValidator' when validating date in Rails

ruby-on-rails - 保存 active_record 而不在 rails3 中调用回调

ruby-on-rails - 在 OS 10.10.2 上运行 Rails 服务器时出错

ruby-on-rails - Active Record - Where IN 有多列

ruby-on-rails - Ruby:根据两个键值的组合检测散列中的重复项

css - SASS 未正确预处理

ruby - 相当于DataMapper中的find_each

ruby-on-rails - 如果我调用 Factory.build 以使我的 Controller 测试快速,我怎样才能让 Factory Girl 永远不会访问数据库?

ruby-on-rails - Rails 为所有命令行方法(例如生成或 rake)提供 NameError