2011-09-20 50 views
1

我有一个网址,如“http://domain.com/1and2”我希望建立在配置这样的/ routes.rb中:Rails的路线匹配开始以数字字符

匹配“1and2 “=> ”头版#oneandtwo“

(具有在适当位置的控制器和视图)。

运行“耙路线”输出“无效的路由名称:'1and2”。当您使用数字字符开始匹配时,显然会触发此错误。

有一种解决方法,还是我做错了?

+0

什么是 '它不是犹太' 是指我加入:as => current_year到路由纠正呢?你在使用它的过程中遇到错误,或者你想知道使用这样的路线是否是一种好的风格? – mliebelt

+0

是啊,这是有点不清楚 - 我的意思是说'耙路线'抱怨和输出'无效的路线名称:'1and2''(我将离开原来的帖子未经编辑,所以你的评论仍然有意义) – andkrup

+0

更新你的问题,以便其他人能够得到更好的开始。只需在您的评论中注明您已更新您的问题。 – mliebelt

回答

3
match '/:id' => "frontpage#oneandtwo", :constraints => {:id => /1and2/} 
+0

THX!红宝石绝对是浩瀚无限的:) – andkrup

1

问题的根源在于Ruby中的方法不能以数字开头。由于Rails路由会为每个路由生成一个访问器方法,因此会出现错误。

您可以通过发行通过与:as参数不同的命名你的路线通过。

我有,我想从一个URI/2012重定向的问题 - 这导致错误。

match "/#{Time.now.year}" => redirect("..."), :as => :current_year

更多信息:

https://github.com/rails/rails/issues/3224