2012-09-25 46 views
0

我記得在網上某處看到了這一點,但我知道無法找到有關它的信息。在Rails 3.1中,我在會話控制器的開始處有一個方法,force_ssl,我只希望它在生產環境中調用,我該怎麼做?Rails,僅在生產環境中調用的方法

爲了澄清,代碼看起來像這樣

class SessionsController < ApplicationController 
    force_ssl 
end 
+0

這是一個非常糟糕的主意。你不想這樣做。您希望生產環境對測試環境運行相同的代碼。否則,擁有測試環境毫無意義。 – EJP

+0

@EJP通常我同意。但是用水豚和硒測試SSL有很大的問題。在測試模式下關閉SSL可以解決此問題。 –

回答

0

Rails.env.production?返回true,如果當前的環境是「生產」。更一般地,如果Rails.env == "somestring"Rails.env.somestring?返回true。從那裏你應該很好。

**編輯**

嗯,事實上,這裏只有在生產中使用SSL的簡單方法。退房this article

+0

你能對語法應該更具體一點嗎?我試過:force_ssl如果Rails.env.production?但它似乎並不奏效。 –

1

我有一個類似的問題。通過用水豚和硒進行測試,force_ssl導致了問題。這裏解決了我的問題,測試現在正在運行:

force_ssl if Rails.env.production? 

我在一些控制器中使用上面的行。例如在SessionController和UserController中。

相關問題