Я следовал учебному пособию, доступному по адресу http://railscasts.com/episodes/221-subdomains-in-rails-3.
Это позволяет вам передавать опцию субдомена вашим маршрутам, переопределяя метод url_for в вспомогательном файле.У меня вспомогательный метод выглядит следующим образом:
module UrlHelper
def with_subdomain(subdomain)
subdomain = (subdomain || "")
subdomain += "." unless subdomain.empty?
[subdomain, request.domain, request.port_string].join
end
def url_for(options = nil)
if options.kind_of?(Hash) && options.has_key?(:subdomain)
options[:host] = with_subdomain(options.delete(:subdomain))
end
super
end
end
так:
sites_homepage_url(:subdomain => "cats")
производит URL:
"http://cats.example.com/sites/1/homepage"
Это прекрасно работает в разработке.Однако в моих тестах на огурцы использование:
sites_homepage_url(:subdomain => "cats")
дает:
"http://www.example.com/sites/1/homepage?subdomain=cats"
, что указывает на то, что функциональность, которую я добавил в url_for в помощнике, не работает.У кого-нибудь есть идеи?
Редактировать: Форматирование и добавить код для UrlHelper.