Скажем, у меня есть следующие маршруты, которые ограничены конкретными подобластями:
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-адрес текущего субдомена: "http:// current-subdomain.lvh.me/" вместо этого субдомен, определенный для ресурс.
Я бы хотел, чтобы root_url
возвращал "http:// www.lvh.me/" и backend_root_url
для возврата "http:// admin.lvh.me/" (поведение должно быть одинаковым для всех ресурсов под субдоменом).
Я попытался выполнить это в rails 3.2, установив параметры URL в разных местах, один из которых является url_options в контроллере приложения:
class ApplicationController < ActionController::Base
def url_options
{host: "lvh.me", only_path: false}.merge(super)
end
end
Возможно, мне нужно переопределить помощники URL вручную? Как я подхожу к этому (доступ к маршрутам и т.д.)?
Изменить: я могу получить правильный результат с помощью root_url (: subdomain = > "admin" ), который возвращает "http:// admin.lvh.me/" независимо от текущего поддомен. Тем не менее, я бы предпочел не указывать это по всему коду.