Посмотрите на проект, над которым я работаю: https://github.com/fabiob/guildhost-hosting
Код, который вам нужен, находится в app/controllers/application_controller.rb
:
class ApplicationController < ActionController::Base
protect_from_forgery
before_filter :load_subdomain
def load_subdomain
@subdomain = self.request.subdomains[0] || 'local'
load_customer
raise "Invalid Subdomain: #{self.request.subdomains}" unless @subdomain.present?
end
def load_customer
@customer = Customer.find(@subdomain)
end
end
Также в app/views/layouts/application.html.erb
:
<!DOCTYPE html>
<html>
<head>
<title><%= @customer.name %> @ MySaaS.com.br</title>
<%= stylesheet_link_tag :all %>
<%= stylesheet_link_tag "/themes/#{@subdomain}/main.css" %>
<%= javascript_include_tag :defaults %>
<%= csrf_meta_tag %>
</head>
<body>
...
</body>
</html>
Существует папка /public/themes
, в которой находятся настройки для каждого субдомена. Каждый поддомен имеет возможность настроить один CSS main.css
. Если требуется более одного файла CSS, в main.css
.
следует использовать предложения
@import