将路由从Rails 2转换为Rails 3

时间:2011-09-06 04:45:01

标签: ruby-on-rails-3

我在将以下路线从rails 2路转换为新的rails 3路时遇到了一些麻烦。

map.connect ':departments/:show/:id', :id => /\w+(,\w+)*/

任何帮助都将不胜感激。

2 个答案:

答案 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"