Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails,是否可以部分使用SSL_Ruby On Rails_Ruby_Ruby On Rails 3 - Fatal编程技术网

Ruby on rails Rails,是否可以部分使用SSL

Ruby on rails Rails,是否可以部分使用SSL,ruby-on-rails,ruby,ruby-on-rails-3,Ruby On Rails,Ruby,Ruby On Rails 3,对于一个rails服务器,比如,是否可以对某些请求使用http,对其他请求使用https http://i.mysite.com/ 及 谢谢是的: before_filter :https_redirect def https_redirect if request.ssl? && !use_https? || !request.ssl? && use_https? protocol = request.ssl? ? "http" : "https

对于一个rails服务器,比如,是否可以对某些请求使用http,对其他请求使用https

http://i.mysite.com/

谢谢

是的:

before_filter :https_redirect

def https_redirect
  if request.ssl? && !use_https? || !request.ssl? && use_https?
    protocol = request.ssl? ? "http" : "https"
    flash.keep
    redirect_to protocol: "#{protocol}://", status: :moved_permanently
  end
end

def use_https?
  controller_name == "abc"
end
(我从某个地方获取了这段代码,我不记得了,所以我不能给学分……但我在一个项目中使用了它,它是有效的)

更新:我从一个RailsCasts网站上获取代码,哈哈,多亏了Ryan Bates

before_filter :https_redirect

def https_redirect
  if request.ssl? && !use_https? || !request.ssl? && use_https?
    protocol = request.ssl? ? "http" : "https"
    flash.keep
    redirect_to protocol: "#{protocol}://", status: :moved_permanently
  end
end

def use_https?
  controller_name == "abc"
end