0

我在 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 进行硬编码。Rails 中是否有基于当前访问的 URL 或 default_url_options 中定义的 url 的内置方法?

还是我应该创建一个助手来代替?

4

0 回答 0