2009-08-26 78 views
0

不解決我已經建立了一個資源在routes.rb命名航線控制器

map.resource :papers 

這反映在rake routes輸出:

new_papers GET /papers/new(.:format)      {:controller=>"papers", :action=>"new"} 
edit_papers GET /papers/edit(.:format)     {:controller=>"papers", :action=>"edit"} 
    papers GET /papers(.:format)       {:controller=>"papers", :action=>"show"} 
      PUT /papers(.:format)       {:controller=>"papers", :action=>"update"} 
      DELETE /papers(.:format)       {:controller=>"papers", :action=>"destroy"} 
      POST /papers(.:format)       {:controller=>"papers", :action=>"create"} 

,當我嘗試重定向問題出現到控制器操作中的命名路由。這是Paper資源create操作的摘錄。它應該將用戶重定向到paper控制器的show操作成功保存。

if @paper.save 
    redirect_to @paper 
else 
    render :action => 'new' 
end 

即出現唯一的例外是:undefined method 'paper_url',表明控制器無法看到具名的路線。但是,這些輔助方法將在視圖中工作。

據我所知,這與Rails腳手架設置資源的方式相同,所以我找不到有什麼問題。我在這裏錯過了什麼?

+0

這是一個錯字。 http://meta.stackexchange.com/q/196985/232821 – 2013-09-14 18:36:38

回答

2

它應該是map.resource s:論文

我只能得到錯誤,我抄出我的路線,所以我想它一定是一個錯字。

+0

這意味着需要在map.resource – 2009-08-26 20:55:55

+0

* facepalm結尾*。謝謝。 – Schrockwell 2009-08-26 20:56:56

1

你犯了一個錯誤

紙模型支架看起來就像這樣:

papers GET /papers(.:format)     {:controller=>"papers", :action=>"index"} 
      POST /papers(.:format)     {:controller=>"papers", :action=>"create"} 
new_paper GET /papers/new(.:format)    {:controller=>"papers", :action=>"new"} 
edit_paper GET /papers/:id/edit(.:format)   {:controller=>"papers", :action=>"edit"} 
    paper GET /papers/:id(.:format)    {:controller=>"papers", :action=>"show"} 
      PUT /papers/:id(.:format)    {:controller=>"papers", :action=>"update"} 
      DELETE /papers/:id(.:format)    {:controller=>"papers", :action=>"destroy"} 

有一個專門的展示方法,一起來看看:

paper GET /papers/:id(.:format) 

你,而不是:

papers GET /papers(.:format)