Problem converting application to use REST, people_path method not found

Hi All,

I am converting a "traditional" rails application to use RESTful routes and controllers. Everything is going fine so far, except for the following problem.

I have the active record class Person. When I want to build RESTful URL's using the helper *_path methods the person_path(:id) calls work fine, but when I use people_path method ruby raises an exception that no method exists. I assume these methods are created dynamically, why would the method for creating "show"URL's get created, but not the method for the "index" URL?

example code:
# This works fine. The call to person_path(@person) generates the correct URL
# this is uses for updating an existing person.
<% form_for(:person, :url => person_path(@person), :html => { :method => :put }) do |form| %>
    <p><label for="employee_first_name">First Name</label> <%= form.text_field :first_name %></p>
    <p><label for="employee_last_name">Last Name</label> <%= form.text_field :last_name %></p>
<% end %>

# The following call to people_path fails with a the eror
# |undefined local variable or method `people_path' for #<#<Class:0xb7065ca4>:0xb7065c7c>
# this is used when creating new users.

<% form_for(:person, :url => people_path, :html => { :method => :put })

do |form| %>
    <p><label for="employee_first_name">First Name</label> <%= form.text_field :first_name %></p>
    <p><label for="employee_last_name">Last Name</label> <%= form.text_field :last_name %></p>
<% end %>

I have tried variants like persons_path with no success. People is the correct pluralization used by rails.

Cheers,

Anthony Richardson

Hi. And what's the content of your "routes.rb" file?

aurels
http://skartoons.be

Aurélien Malisart wrote:

Hi. And what's the content of your "routes.rb" file?

aurels

Hi,
# routes.rb
ActionController::Routing::Routes.draw do |map|
   map.connect '', :controller => "home"
   map.resources :person
end

However, all routing seems to work fine. I have no problems with get,put,post,delete calls.

Cheers,

Anthony Richardson

# routes.rb
ActionController::Routing::Routes.draw do |map|
   map.connect '', :controller => "home"
   map.resources :person
end

Hi.
Have you tried that:

map.resources :people