2010-03-08 40 views
1

我有一个控制器:平台在这里。map.resource,参数限制

我试着这样做:

/:PLATFORM_NAME /重定向到它的节目中,具有参数。这是我得到的:

map.resource :platform, 
       :as => ':platform_name', 
       :platform_name => /pc|ps2|ps3|wii|ds|psp|xbox-360/ 

它工作正常。我还有其他内联资源,他们都在访问。但。 问题是,我只有这些平台名称,但是当它没有很好的另一条路线时,它总是落在这个位置上。 如果我尝试/whatever/,它会寻找platform_name =>无论

我期待它落入map.connect':controller /:action /:id'规则。

当我做了:platform_name =>/pc | ps2 | ps3 | wii | ds | psp | xbox-360/,预计此规则仅适用于正则表达式适合的情况吗?

我怎么能限制这个?

回答

0

尝试改变:

/pc|ps2|ps3|wii|ds|psp|xbox-360/ 

/^(pc|ps2|ps3|wii|ds|psp|xbox-360)$/ 
+0

仍然是一样的,它不会将platform_names限制在这里的正则表达式 – Tiago 2010-03-10 14:47:41

+0

中,试图访问/ password_recover/edit(预期:controller =>:password_recovery,:action =>:edit)。发送给我= =处理PlatformsController#编辑(对于127.0.0.1于2010-03-10 11:56:06)[GET] 参数:{“platform_name”=>“password_recover”,“action”=>“edit” ,“locale”=>“pt”,“controller”=>“platforms”} – Tiago 2010-03-10 14:59:04

+0

你可以发布你的整个routes.rb请。 – jonnii 2010-03-10 16:40:17