web-dev-qa-db-ja.com

railsアプリのルート/ベースURLを取得

私のアプリには、APIドメインの下にいくつかのAPIがあります。次に、APIの1つで、メインドメインを指すURLを生成します。

test.com/blabla...

rl_forを使用しようとしましたが、デフォルトのroot_urlまたはrequest.Hostはapiドメインにあるようです。 Url_forは、

api.test.com/blabla..

私はそれがしたい

test.com/blabla...

Url_forはパラメーターを取ることができます

Host: ...

test.com/に設定するには、ホストのルート/ベースURL(test.com)を取得するにはどうすればよいですか? root_urlまたはrequest.Hostはすべてapi.test.comです。

何か案は?ありがとう。

31
Bruce Xinda Lin

this によると、request.domain

24
Tom Prats

他の誰かに役立つように、今日私はこれに出会いました

request.base_url

ローカルでもライブでも完全なパスを与えます。

request.domain

ドメイン名のみを指定するため、リダイレクト中にリンクが破損することがあります

52
Caffeine Coder

最も簡単な代替方法:

あなたがクラスに含める

include Rails.application.routes.url_helpers

関数を作成するか、root_urlを使用してアプリのルート/ベースURLを取得します。

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

最後に:追加

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

に:

Your_project_root_deir/config/environments/development.rb

ヘルパーはビューでのみアクセス可能ですが、これは実用的なソリューションです。

11
Kaleem Ullah