map.resource,参数限制

时间:2010-03-08 17:47:01

标签: ruby-on-rails routes

我在这里有一个控制器:平台。

我正在尝试做类似的事情:

/:platform_name /使用参数重定向到其show。这就是我所拥有的:

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 / ,并不期望此规则仅适用于正则表达式适用的情况?

我怎么能限制这个?

2 个答案:

答案 0 :(得分:0)

尝试更改:

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

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

答案 1 :(得分:0)

也许你可以试试

:requirements => { :platform_name => /pc|ps2|ps3|wii|ds|psp|xbox-360/ }

:conditions => { ... }

ActionController::Resources#resources