为某些资源操作启用SSL

我的设置: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 

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

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

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