1

我通过高压 gem 在 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 或变体导致部署失败 - 高压使用的参数集与正常路线略有不同,因此我怀疑某处存在冲突。

有人使用带有rails 4的高压和SSL来选择静态页面(不是整个站点)吗?请提供示例路线。

4

1 回答 1

0

您可以通过覆盖HighVoltage#PagesController查看文档的覆盖部分来实现此目的。

它可能看起来像这样:

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
于 2013-12-06T15:36:29.877 回答