我新的軌道,我有一個奇怪的問題,我不明白...問題與路由和路徑
我已經創建了一個基本的應用程序只有一個控制器。此控制器是名稱路由(用於測試目的...),它包含索引,新建和編輯操作。
我已經添加在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'
rewrite_path '
/opt/local/lib/ruby/gems/1.8/gems/actionpack-2.3.8/lib/action_controller/url_rewriter.rb:208:in
/opt/local/lib/ruby/gems/1.8/gems/actionpack-2.3.8/lib/action_controller/url_rewriter.rb:187:inrewrite_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:inurl_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'
edit_blog_path'
(eval):17:in
/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:格式'
端
的奇怪的是,上週一切工作都很好,我不知道我已經改變了什麼......
非常感謝!
我與sachinrathore具有相同的結果,您是否可以在文章中添加routes.rb文件(請減去註釋)以及生成錯誤的代碼,以及您在哪裏放這個代碼。對於什麼是返回路由集,然後在其上拋出「路徑」,我有點困惑。您還使用哪種版本的導軌? – 2010-08-13 05:59:09
我目前無法訪問我的項目,但我的routes.rb是非常基本的。它包含文件末尾的默認路由和一個map.resources:路由,就是這些。對於該版本,我有最新的一個(2.3.8) – glatour 2010-08-13 13:13:42
好吧,我也無法複製。我不確定沒有看到代碼,但有一點要檢查的是,你沒有碰到任何保留的名字 - 可能是用寶石或其他東西。嘗試將它重新命名爲一點點,以確保一切。因此,映射一個資源'map.resources:angus',看看你是否能夠以這種方式進行復制。 – 2010-08-13 15:20:17