我通过高压 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 之外,这一切都很好,它对使用的任何协议(protocol)都很满意。
我在 engine yard 上托管该站点,试图在 route 仅放置 :force_ssl 或变体导致部署失败 - 高压使用与正常路线略有不同的参数集,因此我怀疑某处存在冲突。
有人使用带 rails 4 的高压和 SSL 来选择静态页面(不是整个站点)吗?请示例路线。
最佳答案
您可以通过覆盖 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
关于ssl - 选择 SSL 路由通过高压 gem 提供 rails 4 个静态页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20366604/