2010-08-22 46 views
1

我有我在其他控制器(帖子和標籤)中使用的評論表單(在評論/ _form.html.erb中)。幫助將嵌套路線轉換爲Rails 3

<% form_for([@post, Comment.new], :html => { :multipart => true }) do |f| %> 

    <%= f.text_field :commenter %> 

    <%= f.text_field :email %> 

    <%= f.text_area :body %> 

    <%= f.submit 'submit' %> 

<% end %> 

在我的評論模式我有:

belongs_to :post 

在軌道2版我的申請,我routes.rb包括map.resources :posts, :has_many => :comments它工作得很好,但在Rails 3的相同配置會拋出一個未定義的方法錯誤:

undefined method `post_comments_path' for #<#<Class:0xf94920>:0xf8d540> 

我以爲Rails 2.x路線只是折舊,直到3.1出來。我如何將其轉換爲Rails 3?感謝您閱讀我的問題。

回答

4

在Rails 3,您可以定義嵌套的路線這樣:

resources :posts do 
    resources :comments 
end 

我想你也可能需要定義的form_for有點不同:

<%= form_for [:post, @comment] do |f| %> 

希望幫助!查看http://rizwanreza.com/2009/12/20/revamped-routes-in-rails-3瞭解關於Rails 3中路由的更多信息。