2011-07-22 79 views
0

我的設置:Rails 3.0.9,Ruby 1.9.2爲某些資源操作啓用SSL

我希望只爲項目的創建操作啓用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 

我覺得這是更好,但有尚未這樣做的更好的辦法?

回答

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 %> 
+0

我只是嘗試這樣做,但即使在發展ENV執行HTTPS? – Bob

+0

等一下,有兩個版本https://github.com/retr0h/ssl_requirement和https://github.com/retr0h/ssl_requirement,有什麼區別? – Bob

相關問題