Этот вопрос относится к этому SO вопросу и ответу (rails-3-ssl-deprecation) , где предлагается обрабатывать ssl в rails 3, используя rout.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 (/ * путь) будет для всех методов 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?