1. REST号称减少action,每个controller的action规定在4个。但实际应用时,需要action的数量要大于这个数,这么说来,就要增加更多的controller。
2. 有别的方法可以让controller多处理几个action,例如在表单里设置个隐藏字段,那么POST以后根据隐藏字段的值进行不同的处理。或者说在routes里用with_options多设置几个独立的action。
3. REST生成地址的函数,new/edit/XXX_path(),大家在用的时候会不会想到将来也许为了优化而要将它们都改成<a href...>,你们会不会也觉得有点不爽。
4. respond输出的format.xml, format.js,在一般的web网站开发中,基本不会被用到。虽然它们确实有用,但我看着自己项目里这些鸡肋代码,也不知是删了好还是留着好。
5. 举个实际的例子来说明吧,开发bbs里帖子相关的功能,有新建,保存,修改,删除,但除此之外,我们还有开发预览帖子,引用,收藏,分享,支持或反对等等action。当这些功能处于一个大系统里,你是怎么分配controller和action的呢?
很多人都说正解是:该用REST的部分用REST,其它的就按一般的controller/action来就行了。
是的,要说功能,最终肯定能做出来,但你看到最后写的代码,似乎啥都不像。你也会觉得有些不爽的。
在此抛砖引玉,各位达人有其它好的方式,请多多指教~~
2. 有别的方法可以让controller多处理几个action,例如在表单里设置个隐藏字段,那么POST以后根据隐藏字段的值进行不同的处理。或者说在routes里用with_options多设置几个独立的action。
3. REST生成地址的函数,new/edit/XXX_path(),大家在用的时候会不会想到将来也许为了优化而要将它们都改成<a href...>,你们会不会也觉得有点不爽。
4. respond输出的format.xml, format.js,在一般的web网站开发中,基本不会被用到。虽然它们确实有用,但我看着自己项目里这些鸡肋代码,也不知是删了好还是留着好。
5. 举个实际的例子来说明吧,开发bbs里帖子相关的功能,有新建,保存,修改,删除,但除此之外,我们还有开发预览帖子,引用,收藏,分享,支持或反对等等action。当这些功能处于一个大系统里,你是怎么分配controller和action的呢?
很多人都说正解是:该用REST的部分用REST,其它的就按一般的controller/action来就行了。
是的,要说功能,最终肯定能做出来,但你看到最后写的代码,似乎啥都不像。你也会觉得有些不爽的。
在此抛砖引玉,各位达人有其它好的方式,请多多指教~~
本文探讨了REST架构在实际应用中遇到的问题,如控制器数量过多、地址生成函数使用不便等,并提出了几种解决方案,包括通过隐藏字段或多态路由来扩展控制器功能。
1万+

被折叠的 条评论
为什么被折叠?



