我在 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 的内置方法?
还是我应该创建一个助手来代替?