我的设置: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
我认为这样做更好但是还有更好的方法吗?
答案 0 :(得分: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 %>