在Rails模型中获取资源的完整URL的最佳方法是什么?

时间:2013-03-04 17:51:10

标签: ruby-on-rails-3

我在Rails模型中使用as_json来自定义从控制器访问的返回json,如下所示:

def as_json(options={})
    {
      :id         => self.uuid,
      :href       => full_url_to_resource,
      :file       => self.file.url,
      :filename   => self.filename,
      :file_size  => self.file_size,
      :date       => self.created_at
    }
  end

我想将资源的完整url作为href属性提供给客户端。我想知道是否有一种非硬编码的方式来做到这一点。

我已将Url Helpers包含在我的模型中

include Rails.application.routes.url_helpers

这允许我这样做:

:href => url_for_file(:host => "example.com") + '/files/' + self.uuid,

工作正常,但我显然不想对网址进行硬编码。是否有基于正在访问的当前URL或default_url_options中定义的URL在Rails中执行此操作的内置方法?

或者我应该创建一个助手来代替吗?

0 个答案:

没有答案