我在将以下路线从rails 2路转换为新的rails 3路时遇到了一些麻烦。
map.connect ':departments/:show/:id', :id => /\w+(,\w+)*/
任何帮助都将不胜感激。
答案 0 :(得分:1)
除非:departments和:show是参数名称,我相信你的意思是'departments / show /:id'
如果是这种情况,试试这个。
match "departments/show/:id" => "departments#show"
在正则表达式位上,我从来没有做过类似的事情,但我确信它是相似的。
答案 1 :(得分:0)
首先,您应该告诉我们您遇到了什么问题。有错误信息吗?
以下行应该适用于您的情况:
match ":departments/:show/:id" => "departments#show", :id => /\w+(,\w+)*/
我怀疑 Adam Eberlin 显示的行(upvote去那里!)会更好,因为我有点不确定你是否真的需要参数'部门'和'显示'(你把冒号放在他们面前)。
您的原始路线缺少必需的参数:控制器和操作。我怀疑你的路线即使在Rails 2中也没有用,或者你指定了一些“默认值”,你们没有向我们展示过。
约束的格式没有改变,但是如果你想尽可能具体,你可以使用:contraints参数:
match ":departments/:show/:id" => "departments#show",
:constraints => {:id => /\w+(,\w+)*/}
另外,您可能会看到指南:"Rails Routing from the Outside In"。