Rails controller method going to plural form

Posted by Jty.tan on Stack Overflow See other posts from Stack Overflow or by Jty.tan
Published on 2010-05-08T06:33:36Z Indexed on 2010/05/08 6:38 UTC
Read the original article Hit count: 235

Filed under:
|
|
|

I'm new to rails!

Ok, I am trying to set up a user signup form. It is mapped as a singular resource in the routes

map.resource :user

And trying to create the user through the console works fine. the controller code for user's signup is as follows:

  def signup
    @user = User.new#(params[:user])
  end

 def create
   @user = User.new(params[:user])
   #debugger
   if request.post?  
     if @user.save
       session[:user] = User.authenticate(@user.login, @user.password)
       flash[:message] = "Signup successful"
       redirect_to registries_path          
     else
       flash[:warning] = "Signup unsuccessful"
       #redirect_to 'user/signup'
     end
   end
  end

The signup view is as follows (and this is where i think something is going wrong)

<% form_tag user_path do %>
<p>User creation.</p>
<p><%= error_messages_for 'user' %></p>

<p>
    <label>Username:</label>
    <%= text_field_tag 'login', nil, :size => 20, :maxlength => 20 %>
</p>
<p>
    <label>Password:</label>
    <%= password_field_tag 'password', nil, :size => 20, :maxlength => 20 %>
</p>
<p>
    <label>Password confirmation:</label>
    <%= password_field_tag 'password_confirmation', nil, :size => 20, :maxlength => 20 %>
</p>
<p>
    <label>Email:</label>
    <%= text_field_tag 'email' %>
</p>
<p><%= submit_tag 'Signup' %></p>
<% end %>

Now, that page renders just fine. I've called the form on the "user_path" which is singular (i think?). But when I hit the submit button, it gives me an error saying that

uninitialized constant UsersController

the occurence of the error makes sense, since User is meant to be singular, so if it is trying to call the Users controller, it should be chucking an error. When I checked the server log, it shows this message:

Processing ApplicationController#create (for 127.0.0.1 at 2010-05-08 16:26:14) [POST]
  Parameters: {"commit"=>"Signup", "password_confirmation"=>"[FILTERED]", "action"=>"create", "authenticity_token"=>"yOcHY+rMjaqmu9HS8EwnDqJKbc0Zxictc0y4dtD26ac=", "controller"=>"users", "login"=>"bob", "password"=>"[FILTERED]", "email"=>"[email protected]"}

NameError (uninitialized constant UsersController):

In the params, I can see that it is calling the "users" controller. But I'm not sure how to fix that, or what is causing it to call the "users" controller as opposed to the "user" controller.

Any ideas? Thanks in advance!

© Stack Overflow or respective owner

Related posts about rails

Related posts about controller