web-dev-qa-db-de.com

rails App Root / Base URL holen

In meiner App habe ich ein paar APIs, die unter API-Domain. Jetzt möchte ich in einer der API eine URL generieren, die auf die Hauptdomäne verweist, sagen wir

test.com/blabla...

Ich habe versucht, rl_for zu verwenden, aber anscheinend ist die Standardeinstellung root_url oder request.Host in der API-Domäne. Url_for wird es schaffen

api.test.com/blabla..

während ich es will

test.com/blabla...

Url_for kann einen Parameter annehmen

Host: ...

um es auf test.com/ zu setzen, ist die Frage, wie ich die Root-/Basis-URL (test.com) für den Host erhalten kann. root_url oder request.Host sind alle api.test.com.

Irgendwelche Ideen? Vielen Dank.

31
Bruce Xinda Lin

Laut this können Sie request.domain

24
Tom Prats

Nur damit es jemand anderem nützlich ist, bin ich heute darauf gestoßen

request.base_url

gibt den vollständigen Pfad sowohl lokal als auch live an.

request.domain

gibt nur den Domain-Namen an, so dass der Link manchmal während der Umleitung unterbrochen wird

52
Caffeine Coder

Einfachste alternative Methode:

in deine Klasse aufnehmen

include Rails.application.routes.url_helpers

erstelle Funktion oder benutze einfach root_url, um die Root-/Basis-URL der App abzurufen:

  def add_Host_prefix(url)
    URI.join(root_url, url).to_s
  end

endlich: hinzufügen

Rails.application.routes.default_url_options[:Host] = 'localhost:3000'

im:

Your_project_root_deir/config/environments/development.rb

helfer können zwar nur in ansichten zugegriffen werden aber das ist eine funktionierende lösung.

11
Kaleem Ullah