首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >带有绝对url的Rails回形针静态文件

带有绝对url的Rails回形针静态文件
EN

Stack Overflow用户
提问于 2013-03-19 11:30:14
回答 2查看 4.1K关注 0票数 2

我有一个带有一个回形针附件的模型:图像

模型:

代码语言:javascript
运行
复制
class HomeScreen < ActiveRecord::Base
  before_create { !HomeScreen.has_record? }
  validates :image, :attachment_presence => true
  attr_accessible :image
  has_attached_file :image

  def self.has_record?
    if HomeScreen.last
      true
    else
      false
    end
  end
end

我的控制器的显示方法应该用相对路径返回图像,而json应该用域返回绝对url,我怎么能这样做呢?

控制器:

代码语言:javascript
运行
复制
class HomeScreenController < ApplicationController
  # GET /home_screen
  def show    
    @home_screen = HomeScreen.last

    respond_to do |format|
      format.html
      format.json { render json: @home_screen }
    end
  end
EN

回答 2

Stack Overflow用户

发布于 2013-03-19 11:41:02

根据github问题,您可以执行以下操作:

代码语言:javascript
运行
复制
image_uri = URI.join(request.url, @home_screen.image.url)

这将是一个URI对象,可以将其转换为带有.to_sString

票数 5
EN

Stack Overflow用户

发布于 2014-01-09 18:09:50

根据同一个github问题,使用ActionController::Base.asset_host更干净,这样就可以得到帮助者:

代码语言:javascript
运行
复制
  def add_host_prefix(url)
    URI.join(ActionController::Base.asset_host, url)
  end

这假设您在每个/config/environments/<environment>.rb文件中都有以下内容:

代码语言:javascript
运行
复制
Appname::Application.configure do

  # ....

  config.action_controller.asset_host = 'http://localhost:3000' # Locally

  # ....

end
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15498269

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档