我正在使用Rails 2。 我有这样的嵌套资源: - university_categories - 大学 - 学习 - 教授 - 评论
我希望使用RESTful路由,但我不希望我的URL中出现混乱。例如,而不是: /大学/:university_id /研究/:study_id /教授/:professor_id 我想要: /教授/:university_id /:study_id /:professor_id (我不会单独映射教授,所以不应该和/教授/:professor_id之间存在混淆,因为该路由不应该存在)。 再次,我想使用RESTful资源/路由...... 另请注意,我使用的是slugs而不是ID。用于研究的S is不是唯一的,而其他的则是。此外,没有多对多的关系(所以如果我知道教授的slu ,,它是独一无二的,我也知道它属于哪个研究,大学和类别,但是我仍然希望这些信息在URI中如果可能的话,SEO,并且在添加新教授时也是必要的)。但是,我想使用浅层嵌套作为“管理员”URI,例如编辑,销毁(请注意这里的问题,因为它的slug不是唯一的,但是)...
我还想了解如何使用网址助手的一些提示,以便在将来更改路线时我没有太多需要解决的问题......
谢谢。
答案 0 :(得分:0)
map.resources
似乎不会为您提供此功能,但您可以使用类似(未经测试的)
map.show_professor "/professors/:university_id/:study_id/:professor_id", :controller => "professors", :action => "show"
然后是其他行动的类似路线。
可能有更好的解决方案,但这是我能找到的唯一方法,因为看起来map.resources假设它的形式是/ resources /(:resource_id)
您可以通过这种方式使用REST,您只需自己执行所有操作,而不是使用快捷方式。
作为编辑的示例,您只需使用
即可map.edit_professor "/professors/:id/edit", :controller => "professors", :action => "edit"