0

現在、私が取り組んでいる小さなプロジェクトのステージングとして myapp.herokuapp.com があります。完了すると、myapp.com で実行されます。

ローカルで実行しているときは、lvh.me:3000 を使用してテストしています。これは私が抱えている問題に対してうまく機能していますが、このステージング環境はサブドメインの下にあるため、ルーティングの問題が発生しています。

問題は、ユーザーにカスタム サブドメインが与えられているため、someuser.myapp.com が users#landing を指していることです。私はこのルートでローカルにこれを達成します:

  match '', to: 'users#landing', constraints: lambda { |r| r.subdomain.present? && r.subdomain != 'www' }

私の問題は、myapp.herokuapp.com にアクセスすると、root ではなく users#landing にアクセスしてしまうことです。

本気でブランク描いてます。

4

1 に答える 1

1

自分が何をしていたのか完全に見落としていました...

私は終わりました、

if request.subdomain == 'myapp'
  redirect_to root_url
else

問題を修正しました。ただし、これを行うためのより良い方法があると確信しています。

編集:さらに、application_controller.rbにdefault_url_optionsを追加しました

  def default_url_options
    if Rails.env.production?
      {:host => 'myapp.herokuapp.com'}
    else
      {:host => 'lvh.me'}
    end
  end
于 2013-06-01T22:56:23.817 に答える