で拘束されたルートのサブドメインを含め、私は特定のサブドメインに拘束されている次のルートを持っていると言う:「のhttp:はRailsのURLヘルパー
App::Application.routes.draw do
constraints :subdomain => "admin" do
scope :module => "backend", :as => "backend" do
resources :signups
root :to => "signups#index"
end
end
constraints :subdomain => "www" do
resources :main
root :to => "main#landing"
end
end
私の問題はroot_url
とbackend_root_url
の両方が現在のサブドメイン上のURLを返すということです:// current-subdomain .lvh.me/"代わりにリソースに固有のサブドメイン。 I root_url
を返したい "にhttp:// WWW .lvh.me /" とbackend_root_url
返すように "にhttp:// 管理 .lvh.me /"(振る舞いは下のすべてのリソースに対して同じである必要がありますサブドメイン)。たぶん私は手動でURLヘルパーをオーバーライドする必要が
class ApplicationController < ActionController::Base
def url_options
{host: "lvh.me", only_path: false}.merge(super)
end
end
:
私は様々な場所でURLオプション、アプリケーションのコントローラ内の一つであるurl_optionsを設定することにより、レール3.2でこれを実現しようとしましたか?どのように私はそれに近づくでしょう(ルートにアクセスするなど)?
編集:現在のサブドメインに関係なく、 "http:// admin .lvh.me /"を返すroot_url(:サブドメイン=> "admin")を使用して正しい結果を得ることができます。しかし、コード全体にこれを指定する必要はありません。
これは素晴らしい機能です。私が遭遇した1つの問題は、ベースドメインにサブドメインがまだ含まれていない場合にのみこれが機能することです。そうであれば、それをホストとして含める必要があります。または、次のように設定することもできます:host:ApplicationController#default_url_optionsを定義して、host:hostを含むハッシュを返します。 – mltsy
メインホスト名のサブドメインがすでにある場合は、問題が解決しない場合もあります。私はあなた自身のヘルパーメソッドを書かずにそれを行う方法を考え出していません。 – mltsy