假設我想在同一個URL上同時支持GET和POST方法。我將如何處理軌道控制器操作中的操作?如何在相同的Rails控制器操作中處理多個HTTP方法
33
A
回答
60
你可以使用request.post來檢查它是否是一個帖子嗎?
if request.post?
#handle posts
else
#handle gets
end
爲了讓你的路由的工作:
resources :photos do
member do
get 'preview'
post 'preview'
end
end
5
這裏的另一種方式。我包含了示例代碼,用於響應405不支持的方法,並顯示在URL上使用OPTIONS方法時支持的方法。
在app/controllers/foo/bar_controller.rb
before_action :verify_request_type
def my_action
case request.method_symbol
when :get
...
when :post
...
when :patch
...
when :options
# Header will contain a comma-separated list of methods that are supported for the resource.
headers['Access-Control-Allow-Methods'] = allowed_methods.map { |sym| sym.to_s.upcase }.join(', ')
head :ok
end
end
private
def verify_request_type
unless allowed_methods.include?(request.method_symbol)
head :method_not_allowed # 405
end
end
def allowed_methods
%i(get post patch options)
end
在config/routes.rb
match '/foo/bar', to: 'foo/bar#my_action', via: :all
+1
這些路線部分幫助我配置了我想要的東西。謝謝! – mjnissim 2015-06-29 08:07:43
2
只需要使用這個,只使用在相同的路線get和post
resources :articles do
member do
match 'action_do-you_want', via: [:get, :post]
end
end
0
你可以試試這個
match '/posts/multiple_action', to: 'posts#multiple_action', via: [:create, :patch, :get, :options]
相關問題
- 1. 對於相同的控制器操作,處理多個佈局/視圖的最Rails'ish方法是什麼?
- 2. Spring MVC控制器如何處理多個長的http請求?
- 3. 如何在Rails中重新呈現操作時在頁面URL中維護相同的控制器和操作?
- 4. 如何處理Express.JS中同一控制器的不同動作?
- 5. Rails 3:兩個不同的佈局使用相同的控制器和操作?
- 6. ASP.Net MVC:在不同控制器中的相同操作名稱
- 7. 如何處理onClick執行相同操作的許多按鈕?
- 8. CakePHP在同一個控制器中操作多個模型
- 9. 在Web API控制器中使用相同參數的多個HttpPost操作
- 10. Rails:同時處理(更新)2個不同的控制器
- 11. 如何在多個視圖控制器中製作相同的按鈕?
- 12. Rails控制器操作可以處理html和javascript請求嗎?
- 13. 如何在多個控制器中使用相同的數據?
- 14. 瞄準在其他控制器相同的操作方法生成傳出URL
- 15. HTTP POST方法在WebApi上處理方式與GET相同
- 16. 在MVC中有效地處理未知的控制器操作
- 17. 多個控制器中間件在Laravel 5.2中使用相同的方法
- 18. 在asp.net中調用相同的控制器操作mvc
- 19. 如何識別控制器操作方法中使用的Actionfilter?
- 20. 處理ASP.NET Web API多個GET方法單控制器
- 21. 如何處理Undertow中的HTTP方法?
- 22. 如何在loopj/android-async-http中處理回按操作http
- 23. 正確處理由一個控制器和操作生成的多個表單的方法?
- 24. Rails相同的傳入路由但不同的控制器操作?
- 25. Rails相同的路線(POST /用戶)爲不同的控制器操作[設計]
- 26. Rails 3多個嵌套的路由相同的控制器
- 27. 如何從控制器操作中調用另一個控制器操作?
- 28. 如何有相同類型的多重方法? (「處理」編程)
- 29. 如何在Rails中執行控制器/操作?
- 30. 如何處理在rails 3.1.0中購買控制器的多項批准?
對不起,挖掘它,但 - 是分享相同的路線兩個動詞莫名其妙地不好的做法? – 2014-05-04 03:33:15
我認爲可以。或者它可以暗示你的設計有點差 – Ven 2014-05-15 13:42:42
@FelipeAlmeida海事組織這是不錯的做法,如果使用時是有道理的。 – Dennis 2014-11-21 16:55:55