ruby-on-rails – 如何在Controller层上使用Rails image_url helper以便它返回正确的值?

前端之家收集整理的这篇文章主要介绍了ruby-on-rails – 如何在Controller层上使用Rails image_url helper以便它返回正确的值?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我试图从控制器中调用image_url(来自ActionView :: Helpers :: AssetUrlHelper模块).我的控制器是一个API控制器,可以呈现json响应.因此,控制器准备对象,我使用jBuilder来呈现实际的 JSON响应.这是代码
class Api::Mobile::HomeController < Api::Mobile::ApplicationController
  include ActionView::Helpers::AssetUrlHelper

  def index
    @items = [Api::Mobile::HomePageItem.new(
                type: 'image',image: image_url("api/mobile/home/tutor-with-student.jpg"))]
  end
end

图像tutor-with-student.jpg存在于以下文件夹中:

app/assets/images/api/mobile/home/tutor-with-student.jpg

问题是image_url返回值:

http://myhost.com/images/api/mobile/home/tutor-with-student.jpg

代替

http://myhost.com/assets/api/mobile/home/tutor-with-student.jpg

请注意,当我从实际视图中使用image_url时,该方法返回正确的值.

如何在Controller层上使用image_url方法以便返回正确的值?

解决方法

你应该使用:
ActionController::Base.helpers.asset_url("api/mobile/home/tutor-with-student.jpg",type: :image)

删除包含该模块
::的ActionView ::助手AssetUrlHelper

此外,请确保已在环境配置文件中设置action_controller.asset_host值.因此,对于您的生产环境,它应该在config / environments / production.rb中,它必须是这样的

config.action_controller.asset_host='myhost.com'
原文链接:https://www.f2er.com/ruby/267638.html

猜你在找的Ruby相关文章