2013-09-08 4 views
1

Для моего приложения rails есть две части.Добавление полосы к рельсам Приложение

1) Фактический сайт/приложение.

2) Сайт для бизнеса, который должен оплатить рекламу.

Приложение уже создано. Это простая система crud, использующая программу для входа пользователя в систему. Я не использую SSL для этого.

Для бизнес-сайта я просто хочу иметь форму для ввода информации о платежах и создания учетной записи. Для платежей я хотел бы использовать полосу. Таким образом, для этого сайта требуется SSL. Я хотел бы, чтобы этот сайт находился в субдомене того же домена, на котором установлено приложение. Таким образом, основное приложение находится на example.com, а бизнес-сайт - на business.example.com.

Должен ли я разделить их на два разных приложения? Если они должны быть одним приложением, как я могу заставить отдельный сайт указать субдомен и использовать SSL? Я также создаю отдельную систему входа в систему?

ответ

1

Должен ли я разделить их на два разных приложения?

Вы можете, но это необязательно. Однако, поскольку ваши пользователи, по-видимому, будут одинаковыми на самом сайте и на бизнес-сайте, было бы проще использовать одно приложение, а не оставаться одними и теми же пользователями в двух приложениях.

Если они должны быть одним приложением, как я могу заставить отдельный сайт указать субдомен и использовать SSL?

Существует довольно сложная логика, связанная с выполнением этого, включая внесение изменений в файл хостов, промежуточное программное обеспечение и маршруты. Я нашел this Ryan Bates' tutorial, чтобы быть очень полезным в настройке моих собственных установок с несколькими субдоменами.

Что касается SSL, вам необходимо настроить его как в своем приложении Rails, так и на вашем производственном сервере. Вы, очевидно, working with Heroku, поэтому вам может быть полезно прочитать Heroku's docs о настройке SSL на их конце.

С точки зрения Rails, простой наземную подход к позволяя SSL может быть указано, что все маршруты быть SSL зашифрованы:

MyApplication::Application.routes.draw do 
    resources :sessions, :constraints => { :protocol => "https" } 
end 

В качестве альтернативы, вы можете объявить конкретные маршруты, которые будут зашифрованы:

MyApplication::Application.routes.draw do 
    scope :constraints => { :protocol => "https" } do 
    # All your SSL routes. 
    end 
end 

Вы также можете посмотреть force_ssl для защиты доступа к контроллеру в соответствии с действиями.

Создаю ли я отдельную систему входа в систему?

Если вы работаете в одном приложении, вы можете использовать одну установку Devise. Это предполагает, конечно, что пользователи вашего фактического сайта также будут пользователями вашего бизнес-сайта.

+0

Благодарим вас за то, что нашли время, чтобы написать очень продуманный, хорошо написанный и чрезвычайно полезный ответ.Ты восхитителен! :) –