2010-08-13 127 views
0

我新的轨道,我有一个奇怪的问题,我不明白...问题与路由和路径

我已经创建了一个基本的应用程序只有一个控制器。此控制器是名称路由(用于测试目的...),它包含索引,新建和编辑操作。

我已经添加在routes.rb中文件的资源:map.resources:路线

我的问题是,当我尝试做一个链接到喜欢的link_to edit_route_path(有的ID)的动作我得到的对于#ActionController ::路由:: RouteSet错误未定义的局部变量或方法'路径”:0x101f4d088>

当我routes_path直接使用,它工作正常。

感谢您的帮助!

耙路线的输出:

路由GET /routes(.:format){:控制器=> “路由”,:动作=> “索引”}
POST /routes(.:format ){:controller =>“routes”,:action =>“create”}
edit_route GET /routes/:id/edit(.:format){:控制器=> “路由”,:动作=> “编辑”}
路线GET /routes/:id(.:format){:控制器=> “routes”,:action =>“show”}
PUT /routes/:id(.:format){:控制器=> “路由”,:动作=> “更新”}
DELETE /routes/:id(.:format){:控制器=> “路由” ,:动作=> “消灭”}
/:控制器/:动作/:ID
/:controller/:action/:id(.:format)

这是我有错误:

未定义局部变量或方法`路​​径”的#ActionController ::路由:: RouteSet:0x101f4d128>

和堆栈跟踪:

/opt/local/lib/ruby/gems/1.8/gems/actionpack-2.3.8/lib/action_controller/routing/route_set.rb:386:in generate'
/opt/local/lib/ruby/gems/1.8/gems/actionpack-2.3.8/lib/action_controller/url_rewriter.rb:208:in
rewrite_path '
/opt/local/lib/ruby/gems/1.8/gems/actionpack-2.3.8/lib/action_controller/url_rewriter.rb:187:in rewrite_url'
/opt/local/lib/ruby/gems/1.8/gems/actionpack-2.3.8/lib/action_controller/url_rewriter.rb:165:in
重写'
的/ opt/local/lib目录/红宝石/宝石/1.8/gems/actionpack-2.3.8/lib/action_controller/base.rb:625:in url_for'
/opt/local/lib/ruby/gems/1.8/gems/actionpack-2.3.8/lib/action_view/helpers/url_helper.rb:85:in
发送'
/opt/local/lib/ruby/gems/1.8/gems/actionpack-2.3.8/lib/ action_view/helpers/url_helper.rb:85:在url_for'
(eval):17:in
edit_blog_path'
/Users/guillaume/Projets/rails/testroutes/app/views/blogs/edit.html.erb:4:in`_run_erb_app47views47blogs47edit46html46erb”

红宝石版本是1.8.7 宝石版本是1.3.7 rails版本是2.3。8

我试过基本帖子来自轨道入门用户指南脚手架和我有同样的错误,当我在新页面或编辑页面...

的ActionController ::路由::路线.draw do | map |
map.resources:路由
map.connect ':控制器/:动作/:ID'
map.connect ':控制器/:动作/:ID:格式'

的奇怪的是,上周一切工作都很好,我不知道我已经改变了什么......

非常感谢!

+0

我与sachinrathore具有相同的结果,您是否可以在文章中添加routes.rb文件(请减去注释)以及生成错误的代码,以及您在哪里放这个代码。对于什么是返回路由集,然后在其上抛出“路径”,我有点困惑。您还使用哪种版本的导轨? – 2010-08-13 05:59:09

+0

我目前无法访问我的项目,但我的routes.rb是非常基本的。它包含文件末尾的默认路由和一个map.resources:路由,就是这些。对于该版本,我有最新的一个(2.3.8) – glatour 2010-08-13 13:13:42

+0

好吧,我也无法复制。我不确定没有看到代码,但有一点要检查的是,你没有碰到任何保留的名字 - 可能是用宝石或其他东西。尝试将它重新命名为一点点,以确保一切。因此,映射一个资源'map.resources:angus',看看你是否能够以这种方式进行复制。 – 2010-08-13 15:20:17

回答

0

转到terimnal并键入

rake routes 

它会告诉你所有可能的路由在你的routes.rb文件中定义。 然后检查edit_route_path是否存在

+0

我在问题 – glatour 2010-08-13 05:18:01

+0

中添加了耙路线的输出我已经在我的本地作品中检查过。 我edit_route_path(1) 它给路径/路线/ 1 /编辑 – 2010-08-13 05:41:46

+0

这很奇怪,我真的不明白这一个,它应该工作找到,我想知道如果它不是我的rails和ruby版本...你有什么版本的铁轨? – glatour 2010-08-13 13:10:13