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.

Reply via email to