Say mam następujące trasy, które są ograniczone do poszczególnych subdomen:Dołącz subdomenę dla ograniczonym trasy w Rails url pomocnika
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
Moim problemem jest to, że root_url
i backend_root_url
zarówno zwraca adres URL na bieżącej subdomeny: „http : // obecna poddomena .lvh.me/"zamiast subdomeny specyficznej dla zasobu. Chciałbym root_url
powrotu "http: // www .lvh.me /" i backend_root_url
powrotu "http: // Administrator .lvh.me /" (zachowanie powinny być takie same dla wszystkich zasobów w ramach poddomena).
starałem się tego dokonać w szynach 3,2 ustawiając opcje URL w różnych miejscach, z których jedna jest url_options w kontrolerze aplikacji:
class ApplicationController < ActionController::Base
def url_options
{host: "lvh.me", only_path: false}.merge(super)
end
end
Może muszę ręcznie nadpisać pomocników URL? Jak mam się do tego zbliżyć (dostęp do tras itp.)?
Edytuj: Jestem w stanie uzyskać poprawny wynik przy użyciu root_url (: subdomain => "admin"), który zwraca "http: // admin .lvh.me /" niezależnie od aktualnej subdomeny. Jednak wolałbym nie określać tego całego kodu.
Działa to świetnie! Wystąpił tylko jeden problem: działa to tylko wtedy, gdy domena podstawowa nie zawiera jeszcze poddomeny. Jeśli tak, musisz uwzględnić to jako: host. Lub możesz ustawić: host, definiując ApplicationController # default_url_options, aby zwrócić hash zawierający: host. – mltsy
Odzyskuję, nawet to nie rozwiąże problemu, jeśli masz już subdomenę dla głównej nazwy hosta. Nie wymyśliłem sposobu, aby to zrobić bez pisania własnej metody pomocnika. – mltsy