Hi, I am new to ruby, so pardon me if i am asking something basic. I am trying to create a simple test application where a user registers for a account and can see his profile and edit his profile. the navigation looks like following: Register | Profile | Edit_Profile Profile and Edit_profile and working fine when i use following URL''s: Profile: http://localhost:3000/user/profile/ Edit_Profile: http://localhost:3000/user/edit_profile/1 but for some routing configuration or some reason it does not display my registration page after i add "map.resources :user" in routes.rb file. Register page is at following URL: Register: http://localhost:3000/user/register Note: Register page displays and Register functionality works fine before i add "map.resources :user" in routes.rb, and saves the new user account in Mysql. but in order to make Profile and Edit_profile work i have to add "map.resources :user" in routes.rb file. I only have 1 controller file as "user_controller.rb" which contains following code: class UserController < ApplicationController def register @title = ''Register'' if request.post? and params[:user] @user = User.new(params[:user]) if @user.save flash[:notice] = ''New Account created successfuly'' end end end def profile @title = ''Profile'' @user = User.find(params[:id]) end def edit_profile @title = ''Edit Profile'' @user = User.find(params[:id]) end def update @user = User.find(params[:id]) respond_to do |format| if @user.update_attributes(params[:user]) flash[:notice] = ''User was successfully updated.'' format.html { redirect_to :controller => ''user'', :action => ''profile'', :id => User.find(params[:id]) } format.xml { head :ok } else format.html { render :action => "edit_profile" } format.xml { render :xml => @user.errors, :status => :unprocessable_entity } end end end end I will be very thankful to the community for any help in this, and continue to support the community by helping other members as i go. -- Posted via http://www.ruby-forum.com/. --~--~---------~--~----~------------~-------~--~----~ 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 rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
Baba Bobo wrote: sorry the correct/working URL for Profile page is http://localhost:3000/user/profile/1 -- Posted via http://www.ruby-forum.com/. --~--~---------~--~----~------------~-------~--~----~ 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 rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
Baba Bobo wrote: If I add the following code to my only controller file "user_controller.rb" def show @user = User.find(params[:user]) respond_to do |format| format.html # show.html.erb format.xml { render :xml => @user } end end After which when i refresh the Registeration page at "http://localhost:3000/user/register" it gives me following message: ActiveRecord::RecordNotFound in UserController#show Couldn''t find User without an ID -- Posted via http://www.ruby-forum.com/. --~--~---------~--~----~------------~-------~--~----~ 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 rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
Controllers are customarily named in the plural... UsersController, as opposed to UserController. What does a "rake routes" report to you? rake routes >routes.lst Then peruse that file... You''re mixing restful routes with "non-restful" ones I think, and earlier routes are evaluated before later in the routes.rb file, so your map.resources :user is probably masking the later definition for "profile". With restful routes, you can add custom routing with: map.resources :users, :member => {:profile => :get} (for a single user resource, there''s a profile route and view, you provide the controller method, and the view) or map.resource :users, :collection => {:my_index => :get} (for a list of users, there''s a my_index route and view, again you write the controller method and view) or combine them (both member and collection specs). Oh, and I think your :id => User.find(params[:id]) is simply :id => params[:id] no need for the find -- Posted via http://www.ruby-forum.com/. --~--~---------~--~----~------------~-------~--~----~ 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 rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
Ar Chron wrote:> Controllers are customarily named in the plural... > UsersController, as opposed to UserController. > > What does a "rake routes" report to you? >Thanks for the prompt reply. I agree i am messing up somewhere with the restful routing. By the time i am playing with the custom routing you recommended, here are the things you asked. ### "rake routes" report as following: user_index GET /user {:action=>"index", :controller=>"user"} formatted_user_index GET /user.:format {:action=>"index", :controller=>"user"} POST /user {:action=>"create", :controller=>"user"} POST /user.:format {:action=>"create", :controller=>"user"} new_user GET /user/new {:action=>"new", :controller=>"user"} formatted_new_user GET /user/new.:format {:action=>"new", :controller=>"user"} edit_user GET /user/:id/edit {:action=>"edit", :controller=>"user"} formatted_edit_user GET /user/:id/edit.:format {:action=>"edit", :controller=>"user"} user GET /user/:id {:action=>"show", :controller=>"user"} formatted_user GET /user/:id.:format {:action=>"show", :controller=>"user"} PUT /user/:id {:action=>"update", :controller=>"user"} PUT /user/:id.:format {:action=>"update", :controller=>"user"} DELETE /user/:id {:action=>"destroy", :controller=>"user"} DELETE /user/:id.:format {:action=>"destroy", :controller=>"user"} /:controller/:action/:id /:controller/:action/:id.:format ### and routes.rb (withoug comments) is as following: ActionController::Routing::Routes.draw do |map| map.resources :user map.connect '':controller/:action/:id'' map.connect '':controller/:action/:id.:format'' end -- Posted via http://www.ruby-forum.com/. --~--~---------~--~----~------------~-------~--~----~ 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 rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
By the way I have issue with the register page not the profile page. -- Posted via http://www.ruby-forum.com/. --~--~---------~--~----~------------~-------~--~----~ 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 rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---