has_many, belongs_to and comment forms

Posted by Koning Baard XIV on Stack Overflow See other posts from Stack Overflow or by Koning Baard XIV
Published on 2010-04-16T16:19:21Z Indexed on 2010/04/16 16:23 UTC
Read the original article Hit count: 435

Filed under:
|
|
|

I'm having two models: Snippet and SnippetComment. These also have their own controllers, as well as views. In /app/views/snippets/show.html.erb I have a form that starts like this:

<% form_for(@new_snippet_comment) do |form| %>

SnippetComment belongs to one Snippet, and a Snippet belongs to one User. This means that I have this routing:

map.resources :users do |user|
  user.resources :snippets do |snippet|
    snippet.resources :snippet_comments, :as => "comments"
  end
end

So when I submit the SnippetComment form in the SnippetController#show view, this request should be made:

POST /users/x/snippets/x/comments HTTP/1.1

(where x is the User's or Snippet's id).

The problem is that I don't even get the comment submission form, but rahter this:

NoMethodError in Snippets#show

Showing app/views/snippets/show.html.erb where line #29 raised:

undefined method `snippet_comments_path' for

Extracted source (around line #29):

26: <% if current_user %>
27: <h2>Schrijf een nieuwe reactie</h2>
28: 
29: <% form_for(@new_snippet_comment) do |form| %>
30: 
31: <p>
32:   <%= form.text_area :body %>

RAILS_ROOT: /Users/jeffatwood/Dev/youjustdontneedmyrealname

Application Trace | Framework Trace | Full Trace

/Users/jeffatwood/.gem/ruby/1.8/gems/actionpack-2.3.5/lib/action_controller/polymorphic_routes.rb:107:in `__send__'
/Users/jeffatwood/.gem/ruby/1.8/gems/actionpack-2.3.5/lib/action_controller/polymorphic_routes.rb:107:in `polymorphic_url'
/Users/jeffatwood/.gem/ruby/1.8/gems/actionpack-2.3.5/lib/action_controller/polymorphic_routes.rb:114:in `polymorphic_path'
/Users/jeffatwood/.gem/ruby/1.8/gems/actionpack-2.3.5/lib/action_view/helpers/form_helper.rb:298:in `apply_form_for_options!'
/Users/jeffatwood/.gem/ruby/1.8/gems/actionpack-2.3.5/lib/action_view/helpers/form_helper.rb:277:in `form_for'
/Users/jeffatwood/Dev/youjustdontneedmyrealname/app/views/snippets/show.html.erb:29:in `_run_erb_app47views47snippets47show46html46erb'
/Users/jeffatwood/Dev/youjustdontneedmyrealname/app/controllers/snippets_controller.rb:19:in `show'

Request

Parameters:

{"id"=>"1",
 "user_id"=>"2"}

Show session dump

Response

Headers:

{"Content-Type"=>"text/html",
 "Cache-Control"=>"no-cache"}

Can anyone help me with this problem? Thanks

© Stack Overflow or respective owner

Related posts about ruby-on-rails

Related posts about error