Rails 3在非安全页面和安全页面之间传递参数

时间:2011-03-22 19:40:49

标签: ruby-on-rails ssl

这似乎是一个非常直截了当的问题,但谷歌让我失望。

我目前的全SSL网站只需要部分安全(否则不是搜索引擎友好的)。但是,虽然我希望我的主页不安全,但该页面上的表单会转到安全页面。事实上,任何进入安全站点的表单参数都会丢失,导致通常的混乱。

这种情况的最佳做法是什么?就我的设置而言,我正在为Rails 3使用rack-ssl-enforcer gem(作品之美,顺便说一句)。但是这些安全和不安全的页面需要以某种方式共存。

谢谢! 亚伦

1 个答案:

答案 0 :(得分:0)

不确定我明白了,但为什么不使用:except或:only选项:

config.middleware.use Rack::SslEnforcer, :only   => /^\/admin\//
config.middleware.use Rack::SslEnforcer, :except => /^\/home\//

然后,为表单使用:protocol选项,例如

# PagesController#home
%h1 Home
= render 'comments/form'

# CommentsController#_form
= form_for @comment, :url => comments_path, :protocol => https
  ...

应该这样做......