Rails基于变量更改URL的方法?路由和命名空间相关

时间:2009-10-14 14:35:57

标签: ruby-on-rails routing url-routing

我有一个images表,标有nsfw

nsfwsfw添加到网址的最佳方式是什么?

例如,

如果我的图片的id = 1并且nsfw标志为true,我希望该网址为/images/nsfw/1

如果我的图片的id = 2且nsfw标志为false,我希望该网址为/images/sfw/2

2 个答案:

答案 0 :(得分:1)

这可以通过路线完成:

map.connect ':controller/images/:nsfw/:id', :action => 'show', :nsfw => /n?sfw/

然后,您可以像获得的那样检查nsfw值(将是'nsfw'或'sfw'):id。

答案 1 :(得分:1)

命名路线可以满足您的需求。

map.sfw '/images/sfw/:id', :action => 'show' , :controller => 'images', :params => {:nsfw => false}
map.nsfw '/images/nsfw/:id', :action => 'show' , :controller => 'images', :params => {:nsfw => true}

这将为link_to和正确路由提供方便的方法。相应地在params哈希中设置:nsfw值。