我通过高压宝石在ruby rails 4网站上提供了几个静态erb页面:
get '/about' => 'high_voltage/pages#show', id: 'about'
get '/contact' => 'high_voltage/pages#show', id: 'contact', :protocol => "https"
get '/privacy' => 'high_voltage/pages#show', id: 'privacy'
这一切都运行良好,除了/ contact路由不重定向或强制启用SSL,它对使用的协议感到满意。
我在发动机堆场上托管网站,试图放置:仅限force_ssl或路线中的变量导致部署失败 - 高压使用的参数集与正常路线略有不同,所以我怀疑某处存在冲突。
对于选择静态页面(不是整个站点),任何人都使用高压和SSL和rails 4?示例路线请。
答案 0 :(得分:0)
您可以通过覆盖HighVoltage#PagesController
来查看文档的override section来实现此目的。
它可能看起来像这样:
class PagesController < ApplicationController
include HighVoltage::StaticPage
before_filter :ensure_secure_page
private
def ensure_secure_page
if params[:id] == 'contact'
# check to make sure SSL is being use. Redirect to secure page if not.
end
end
end
接下来禁用HighVoltage提供的路由:
# config/initializers/high_voltage.rb
HighVoltage.routes = false
然后在您的应用程序的路径文件中,您需要设置一条新路线:
# config/routes.rb
get "/pages/*id" => 'pages#show', as: :page, format: false