2013-11-04 67 views
0

我有我的應用程序使用SSL與force_ssl方法的一部分,在做相關的控制器是這樣的:如何在不需要SSL時重定向非SSL流量?

class MyController < ApplicationController 
    force_ssl 
end 

這工作得很好,但是,在不是本節的部分頁面,我不想使用SSL。當不需要時,是否可以重定向到非SSL協議?

回答

0

我不認爲這有一些automagic功能。所以你必須有一些需要SSL和不需要SSL的定義。在進行映射時,在ApplicationController中創建簡單的條件是很簡單的。

這樣的,如果你不介意的語法

https_only = { auth:{'login','logout',...}, registration:{'new','edit',...},...} 

https_only.each do |controller, actions| 
    if controller_name == controller 
     actions.each do |a| 
      if action_name == a 
       do_redirect_to_https_with_current_path 
      else 
       do_nothing 
     end 
    end 
end 
+0

你是什麼意思「ApplicationController中的簡單條件」。有沒有force_ssl的相反? –

+0

我編輯了我的答案,希望它有幫助 – user12733