【问题标题】:Enable SSL for certain resource actions为某些资源操作启用 SSL
【发布时间】:2011-07-22 21:34:54
【问题描述】:

我的设置:Rails 3.0.9、Ruby 1.9.2

我希望仅为项目的创建操作启用 SSL,我该怎么做?目前我有

  resources :projects, :constraints => { :protocol => 'https' }, :only => :create
  resources :projects, :except => :create

我认为这不太对。

更新

后来我把它改成了

  match 'projects' => 'projects#create', :constraints => { :protocol => 'https' }, :via => :post
  resources :projects, :except => :create

我认为这更好,但还有更好的方法吗?

【问题讨论】:

    标签: ruby-on-rails


    【解决方案1】:

    虽然您可以创建一个custom constraint class 将 SSL 逻辑移出资源声明,但我推荐这个gem。它将保持您的路由文件干净并仅在生产中强制使用 SSL。 (该逻辑也可以纳入自定义约束,但您也必须管理表单链接。)您会这样做

    class ProjectsController
      include ::SslRequirement
      ssl_required :create
    end
    
    <%= form_for(@project, projects_url(:secure => true)) do |f| %>
    <% end %>
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-27
    • 2017-06-12
    • 1970-01-01
    • 2017-08-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多