次のように、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 ヘルパーを含めました
include Rails.application.routes.url_helpers
これにより、これを行うことができます:
:href => url_for_file(:host => "example.com") + '/files/' + self.uuid,
それはうまくいきますが、明らかにURLをハードコーディングしたくありません。アクセスされている現在のURLまたはdefault_url_optionsで定義されたURLに基づいて、Railsでこれを行う組み込みの方法はありますか?
または、代わりにこれを行うヘルパーを作成する必要がありますか?