Hmmm wait, I just noticed something. Could you rename your Comments model to Comment (from plural to singular). Don't forget to rename the model file (comments.rb to comment.rb)
On 10/14/10 8:52 PM, aperture science wrote: > I'm still getting the "undefined method `comments_index_path'" error > > The extracted source points at: > <%= form_for(@comment) do |format| %> > > I cannot find where that method would be being called from > even..."comments_index_path" only appears in the development.log > > On Oct 14, 3:08 am, Erol Fornoles <[email protected]> wrote: >> You were using a singular resource when you should have defined a plural >> one. Also, you can specify the controller on your RESTful route instead >> of having to create a separate map.connect or match: >> >> resources :comments, :controller => 'controller1' >> >> I recommend that you use consistent naming with your controllers and >> routes though. >> >> HTH >> >> On 10/14/10 5:53 PM, aperture science wrote: >> >> >> >> >> >>> I'm trying to learn rails as I go along, and having a bit of trouble. >>> There is an undefined method cropping that I don't know why rails >>> thinks should be there. >> >>> Firstly, I'm using rails 3, ruby 1.9.2 >> >>> I have a controller with an index action This part works fine, but i >>> am trying to add a comment form to the page that is rendered by that >>> index action. >> >>> Supposing my controller is named controller1, >> >>> I began this process first with: >> >>> rails g model comments name:string content:text >>> rake rb:migrate >> >>> Then I went on to define an action to create the comments: >> >>> within contoller1_controller.rb I added >>> ========= >>> def new >>> @comment = Comments.new >> >>> respond_to do |format| >>> format.html >>> format.xml { render :xml => @comment } >>> end >>> end >>> ======== >> >>> views/controller1/new.haml contains >>> ======== >>> = render 'form' >>> ======== >> >>> and _form.html.erb contains >>> ======== >>> <%= form_for(@comment) do |format| %> >> >>> <div class='commentForm'> >>> <%= format.label :name %><br /> >>> <%= format.text_field :name %><br /> >> >>> <%= format.label :content %><br /> >>> <%= format.text_area :content %><br /> >>> <div class='commentSend'> >>> <%= format.submit %> >>> </div> >>> </div> >> >>> <% end %> >>> ======= >> >>> I then added into routes.db the following lines: >>> resource :comments >>> map.connect '/controller1/new', :controller => >>> 'controller1', :action => 'new' >> >>> Now, navigating to /controller1/new gives me this error: >> >>> undefined method `comments_index_path' >> >>> What am I missing? >> >>> If I change the form to "form_for(:Comments)", then '/controller1/new' >>> renders, however, when I then add "@comments = Comments.all" into the >>> index definition, and: >>> - @comments.each do |comment| >>> - comment.content >>> into the index.haml file, no comments are actually displayed. So I >>> assume the form is not actually sending anything to the database >> >>> Any tips on what I'm doing wrong would be greatly appreciated, >> >>> Thanks >> >> -- >> Erol >> Fornoleshttp://github.com/Erolhttp://twitter.com/erolfornoleshttp://ph.linkedin.com/in/erolfornoles > -- Erol Fornoles http://github.com/Erol http://twitter.com/erolfornoles http://ph.linkedin.com/in/erolfornoles -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.

