我在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中执行此操作的内置方法?
或者我应该创建一个助手来代替吗?