2011-09-27 88 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