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 ヘルパーを含めました

include Rails.application.routes.url_helpers

これにより、これを行うことができます:

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

それはうまくいきますが、明らかにURLをハードコーディングしたくありません。アクセスされている現在のURLまたはdefault_url_optionsで定義されたURLに基​​づいて、Railsでこれを行う組み込みの方法はありますか?

または、代わりにこれを行うヘルパーを作成する必要がありますか?

4

0 に答える 0