2011-11-16 27 views
1

我有在application_controller.rbSSL上的設計工作不正常的Rails 3

def force_ssl 
     if !request.ssl? 
     redirect_to :protocol => 'https' 
     end 
    end 

    def no_ssl 
     if request.ssl? 
     redirect_to :protocol => "http" 
     end 
    end 

還有兩個方法我已經在application.rb中

before_filter :no_ssl現在我試圖調用force_ssl在會話方法色器件控制器通過SSL

確保登錄sessions_controller.rb文件我已經做了skip_before_filter :no_ssl and before_filter :force_ssl

我當我使用這個時不能登錄,但是如果我在application_controller.rb中沒有執行before_filter :no_ssl,它可以正常工作。

既然我已經得到了很多控制器的我試圖把before_filter :no_ssl在application.rb中,這樣我不用調用before_filter :no_ssl在所有的控制器,因爲它不會幹盡。

我已經嘗試了幾乎所有可用的資源,不知道爲什麼這不起作用。

P.S: - 這是爲我的其他控制器,除了設計控制器 任何建議?

感謝,

回答

1
  1. 可以使用Bartt-SSL_Requirement,它運作良好,對Rails 3.1,這樣你不需要的before_filter和skip_before_filter。在BarttSSLRequirement中,您可以將「ssl_exceptions」用於before_filter需求。

  2. SSL有時在開發過程中出現問題,推送到分段,它應該工作。

+0

是的,當我嘗試它在分段它正在工作,雖然我以前沒有使用Bartt-SSL,我會嘗試與Bartt-SSL –