我記得在網上某處看到了這一點,但我知道無法找到有關它的信息。在Rails 3.1中,我在會話控制器的開始處有一個方法,force_ssl,我只希望它在生產環境中調用,我該怎麼做?Rails,僅在生產環境中調用的方法
爲了澄清,代碼看起來像這樣
class SessionsController < ApplicationController
force_ssl
end
我記得在網上某處看到了這一點,但我知道無法找到有關它的信息。在Rails 3.1中,我在會話控制器的開始處有一個方法,force_ssl,我只希望它在生產環境中調用,我該怎麼做?Rails,僅在生產環境中調用的方法
爲了澄清,代碼看起來像這樣
class SessionsController < ApplicationController
force_ssl
end
Rails.env.production?
返回true,如果當前的環境是「生產」。更一般地,如果Rails.env == "somestring"
,Rails.env.somestring?
返回true。從那裏你應該很好。
**編輯**
嗯,事實上,這裏只有在生產中使用SSL的簡單方法。退房this article
你能對語法應該更具體一點嗎?我試過:force_ssl如果Rails.env.production?但它似乎並不奏效。 –
我有一個類似的問題。通過用水豚和硒進行測試,force_ssl導致了問題。這裏解決了我的問題,測試現在正在運行:
force_ssl if Rails.env.production?
我在一些控制器中使用上面的行。例如在SessionController和UserController中。
這是一個非常糟糕的主意。你不想這樣做。您希望生產環境對測試環境運行相同的代碼。否則,擁有測試環境毫無意義。 – EJP
@EJP通常我同意。但是用水豚和硒測試SSL有很大的問題。在測試模式下關閉SSL可以解決此問題。 –