フォークされたプラグインに依存したくない場合は、ssl_allowed? をオーバーライドできます。あなたのコントローラーで:
class ApplicationController < ActionController::Base
...
private
def ssl_allowed?
true
end
end
編集:これは、私が思っていたことをしません。ssl_required が指定されていないページの http へのリダイレクトを無効にする代わりに、リダイレクト プロセス全体を省略して何もしません。これは非常に悪いです。コード:
def ensure_proper_protocol
return true if ssl_allowed?
if ssl_required? && !request.ssl?
redirect_to "https://" + request.host + request.request_uri
flash.keep
return false
elsif request.ssl? && !ssl_required?
redirect_to "http://" + request.host + request.request_uri
flash.keep
return false
end
end
ssl_allowed を追加しますか? このようなメソッドは、コードが代わりに次の場合にのみ答えになります。
def ensure_proper_protocol
if ssl_required? && !request.ssl?
redirect_to "https://" + request.host + request.request_uri
flash.keep
return false
elsif request.ssl? && !ssl_required? && !ssl_allowed?
redirect_to "http://" + request.host + request.request_uri
flash.keep
return false
end
end