2010-08-13 125 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