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| %>
<%= format.text_field :name %>
<%= format.label :content %>
<%= format.text_area :content %>
<%= format.submit %>
<% 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
- comment.content
Any tips on what I’m doing wrong would be greatly appreciated,
Thanks