2011-09-27 120 views
2

我們有一個應用程序與大量的非RESTful,面向動詞的控制器。我記得很久以前,在Rails獲得REST宗教之前,你可以獲得自動路由和助手。有什麼辦法仍然可以做到這一點?每次添加一個動作時不斷添加GET是一種痛苦,而我們的應用程序(或者也許是我們的集體開發大腦)並不適用於RESTfulness。Rails 3中的自動非RESTful路由?

+2

只是一個小竅門:你可以不REST風格堅持瘋狂縮小的Rails REST風格/約定。並且不要將REST與CRUD混淆。 (只是因爲CRUD完美映射,這並不意味着,它是唯一可以成爲RESTful的方式)。基本上,如果您通過不同的URL識別資源並根據規範使用HTTP動詞(例如,PUT和DELETE必須是冪等的,POST僅用於更改數據,GET始終沒有副作用),那麼您已經是RESTful –

回答

2

您可以使用「魔術路線」,我相信它仍然在默認的路徑文件,但如果你沒有在這裏它是:

# This is a legacy wild controller route that's not recommended for RESTful applications. 
# Note: This route will make all actions in every controller accessible via GET requests. 
# match ':controller(/:action(/:id(.:format)))' 
2

,您仍然可以使用這樣的默認路由:

match ':controller(/:action(/:id))' 

匹配諸如

  • /猴路徑/播放
  • /猴/看/ 1
  • /猴/聽到/ 1
  • /monkey/eat/1