假设以下路径合法且正在解决:
http://test.local/wizards/home
http://test.local/wizards/wizardfest2012/dates
http://test.local/dragons/
http://test.local/dragons/blog/stop-slaying-us
http://test.local/
对于包含博客的CMS,这是(如果您无法分辨),因此用户将生成slu ..我有一些路由要首先处理保留名称空间(例如admin)。
我假设用户生成的路由需要路由到Page
控制器 - 但是,我不认为实际向routes.rb添加一行是有效的。那么我的问题是,如何处理参数的第一部分(在本例中为wizards
和dragons
)以从模型中获取正确的信息?
这是我的一个想法 - 分裂(不知何故)slug的第一部分(再次,wizards
和dragons
并传递其余的slug(例如,/wizardfest2012/dates
)到模型以获取相关内容。
有关最有效方法的想法吗?
答案 0 :(得分:0)
我不确定我是否理解你想要达到的目标,但也许这就是你想要的:
constraints :camp => /wizards|dragons/ do
match ':camp/home' => "pages#home"
match ':camp/blog/:title' => "pages#blog"
# ...and all the routes with known components
match ':camp/*other' => "pages#other"
end
您可以创建一个before_filter
来识别params[:camp]
并准备必要的模型或任何需要的模型。
other
操作会收到"wizardfest2012/dates"
字符串params[:other]
。我希望这就是你所需要的。
"Rails Routing from the Outside In"指南可能值得一读,除非您已经阅读过。