используя пользовательские шаблоны rails3 - PullRequest
0 голосов
/ 19 ноября 2010

Я настраиваю решение SAAS, так как каждая учетная запись имеет свой собственный поддомен, например, sub1.mydomain.com sub2.mydomain.com, и в шаблоне приложения я настроил стандартный шаблон с 2 столбцами, который я хочу включить вПомимо столбца пользовательский фрагмент для каждого сайта, а также файл style.css для каждого субдомена.Поэтому мне интересно, как я мог настроить это, чтобы показать эту пользовательскую информацию.Я хотел бы настроить контроллер стиля - чтобы он отображал только элементы левой боковой панели и страницу style.css для каждого доменного имени, с которым он связан, есть ли у кого-нибудь хорошие идеи?

В основном для статического контроллера страниц, у меня уже есть эта настройка, а также другое действие с БД. Но любые советы приветствуются.

1 Ответ

1 голос
/ 19 ноября 2010

Посмотрите на проект, над которым я работаю: 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
...