Decir que tengo las siguientes rutas que están restringidas a los subdominios específicos:Incluir subdominio de ruta restringida en Rails asistente de 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
Mi problema es que root_url
y backend_root_url
tanto devuelve una URL en el subdominio actual: "http : // actual-subdominio .lvh.me/"en su lugar, el subdominio específico para el recurso. me gustaría volver root_url
"http: // www .lvh.me /" y backend_root_url
para volver "http: // administrador .lvh.me /" (el comportamiento debe ser el mismo para todos los recursos bajo el subdominio).
He tratado de lograr esto en los carriles 3.2 mediante el establecimiento de las opciones de URL en varios lugares, uno de ellos en url_options controlador de aplicación:
class ApplicationController < ActionController::Base
def url_options
{host: "lvh.me", only_path: false}.merge(super)
end
end
Tal vez necesito para anular los ayudantes URL de forma manual? ¿Cómo abordaría eso (accediendo a las rutas, etc.)?
Editar: Puedo obtener el resultado correcto usando root_url (: subdomain => "admin") que devuelve "http: // admin .lvh.me /" independientemente del subdominio actual. Sin embargo, preferiría no tener que especificar esto en todo el código.
Esto funciona genial! Un problema que encontré es que esto solo funciona si su dominio base no incluye un subdominio. Si lo hace, debe incluirlo como: host. O puede establecer: host definiendo ApplicationController # default_url_options para devolver un hash que contenga: host. – mltsy
Lo retiro, incluso eso no resuelve el problema si ya tiene un subdominio para su nombre de host principal. No he encontrado una manera de hacerlo sin escribir su propio método de ayuda. – mltsy