我正在尝试按照本教程here进行操作,但教程似乎使用了这个“匹配”功能。
match '/about', :to => 'pages#about'
每当我这样做时,我从服务器收到此错误:
主要的未定义方法`match':对象
如何编辑routes.rb文件:
答案 0 :(得分:4)
您使用的是Ruby on Rails 3吗? match
路由器语法仅适用于Rails 3。对于以前的版本,您可以定义命名路由:
map.about '/about', :controller => 'pages', :action => 'about'
答案 1 :(得分:0)
该语法适用于即将推出的Rails3(实际上是在beta4中,但如果您知道自己在做什么,它仍然可以用于制作:P)
你应该将它用于rails 2.3:
map.about '/about', :controller => 'pages', :action => 'about'
如果您有一个名为“about”的动作呈现特定页面,则此方法有效。 否则,如果'about'是一个简单的页面,你从'show'动作获取,传递一个ID或PERMALINK(例如:你正在使用permalink_fu插件),那么正确的语法是:
map.about '/about', :controller => 'pages', :action => 'about', :id => 'page_id_or_permalink'
这个解决方案并不是最好的:如果您更改固定链接或删除/重新创建具有不同ID的页面,则必须更新路由。按照你的要求,它的工作方式。
答案 2 :(得分:0)
我是这样做的:
map.connect '/page', :controller => 'page2', :action => 'index'
所以,在网址中我只是重定向到http://x.x.x.x/page
而RoR实际上正在加载http://x.x.x.x/page2/index.html.erb
最诚挚的问候,
IvánCarrascoQ。