Этот вопрос относится к этому вопросу SO (ответ на rails-3-ssl-deprecation) ), где предлагается использовать ssl в rails 3, используя route.rb и маршруты, например:
resources :sessions, :constraints => { :protocol => "https" }
# Redirect /foos and anything starting with /foos/ to https.
match "foos(/*path)", :to => redirect { |_, request| "https://" + request.host_with_port + request.fullpath }
Моя проблема заключается в том, что ссылки используют относительные пути (я думаю, что это правильный термин), и как только я нахожу на странице https все другие ссылки на другие страницы на сайте, используйте https.
1) Каков наилучший способ вернуться к http для страниц, где https не требуется? Должен ли я настраивать перенаправления для всех них (надеюсь, заметьте), или есть лучший способ. Будут ли переадресации такими:
match "foos(/*path)", :to => redirect { |_, request| "http://" + request.host_with_port + request.fullpath }
2) Если требуется перенаправить обратно на http, как мне обрабатывать случай, когда я хочу, чтобы все методы были http за исключением одного? т.е. foos (/* path) будет для всех foos-методов. Но скажу, что я хотел использовать foos/upload_foos для использования ssl. Я знаю, как его нужно
scope :constraints => { :protocol => "https" } do
match 'upload_foos' => 'foos#upload_foos', :via => :post, :as => :upload_foos
end
но если я поставлю http-перенаправление на путь foos, что произойдет с https upload_foos?