Error generated after calling form_for

Hello list,

I’m a fairly nooby Rails developer of very little brain, and this error
has
had me confused for the last several hours.

It’s a very simple (unfinished) Rails app. It has a model called Tasks.
It
has a very basic routes.rb

resources :tasks
root :to => ‘tasks#index’

A vanilla controller (create action not properly defined yet because
that
would have been next on the list when I ran into this problem)

class TasksController < ApplicationController

def index
@tasks = Tasks.all
end

def new
@task = Tasks.new
end

def create
end

end

And a view for the /tasks/new action

Create new task

<%= form_for @task do |form| %> <%= lots of form. blah blah here... %> <% end %>

And when the view is rendered I get the following error:

undefined method `tasks_index_path’ for
#<#Class:0x000000020c04e8:0x000000020b74d8>

Extracted source (around line #2):

1:

Create new task


2: <%= form_for @task do |form| %>

And here are the top few lines of the stack trace:

actionpack (3.0.0)
lib/action_dispatch/routing/polymorphic_routes.rb:114:in
polymorphic_url' actionpack (3.0.0) lib/action_dispatch/routing/polymorphic_routes.rb:120:inpolymorphic_path’
actionpack (3.0.0) lib/action_view/helpers/form_helper.rb:335:in
apply_form_for_options!' actionpack (3.0.0) lib/action_view/helpers/form_helper.rb:307:inform_for’
app/views/tasks/new.html.erb:2:in
`_app_views_tasks_new_html_erb__194514136627382544_17145340__4434388515179536201’

I don’t really understand where “tasks_index_path” came from or why
form_for
has bombed out so spectacularly, especially given how simple the code is
right now. Can anyone point me at what I might be doing wrong?

Oh yes, it’s rails 3.0.0 on ruby 1.9.2 running on Ubuntu 10.04.

Thanks,

Mark

Hello list,

Hi Mark,

would have been next on the list when I ran into this problem)

def create
end

end

models are always singular in rails. Try the following:

def index
@tasks = Task.all
end

def new
@task = Task.new
end

That should help.

Regards, Max.

On 7 October 2010 09:35, Maksim G. [email protected] wrote:

That should help.

Regards, Max.

Mmm, perhaps you meant that all models should be singular in rails.
Mine
weren’t! However after a couple of quick search-and-replaces I had a
singular Task model and suddenly the form_for error went away.
Interesting
side-effect. Maybe warnings about pluralised models in the docs need to
be
in really BIG RED LETTERS so that idiots like me will notice them.

Anyway, thanks for the reply.

Mark

Mark Weston wrote:

On 7 October 2010 09:35, Maksim G. [email protected] wrote:

That should help.

Regards, Max.

Mmm, perhaps you meant that all models should be singular in rails.
Mine
weren’t! However after a couple of quick search-and-replaces I had a
singular Task model and suddenly the form_for error went away.
Interesting
side-effect. Maybe warnings about pluralised models in the docs need to
be
in really BIG RED LETTERS so that idiots like me will notice them.

Remember: try to name your classes after what they actually represent!
A Task object represents one Task, so you really shouldn’t call it
Tasks.

Anyway, thanks for the reply.

Mark

Best,

Marnen Laibow-Koser
http://www.marnen.org
[email protected]