it the route you set a requirement but you could access the client with a
query, something like this

link_to <http://user.name/>"Home", root_path(:id=>@user.id)


but what this does is add this to the url string


?id=1

and is not what you want since people can still access  the original with
out ?id=1 gicing user the same message
so what you do is create a route like this

match 'products/:id' => 'catalog#view'    <============copied from the
routes.rb comments

you see here the id is specified that means that it the user access product
with no id the message will be

no routes matched /products

and that is what we want, not an error in the controller is just that there
is no page in the site you can access without specifing
the id.

conclusion
is not a good idea to have a root route that requieres an id instead

match 'pages/:id'  => 'pages#home'

and

root :to => "welcome#index"


On Sun, Sep 12, 2010 at 7:48 AM, Anders_P <[email protected]> wrote:

> Hi radhames!
>
> So the problem lies in my routes!?!, do you have any suggestion on how
> it should look?
>
> Thanks!
>
> // Anders
>
>
> On 12 Sep, 04:48, radhames brito <[email protected]> wrote:
> > ok there is a problem
> >
> > @user = User.find(params[:id])      <================= params[:id] is
> pulled
> > from the url query string
> >
> > in rails the convention is this
> >
> > /controller/action/id
> >
> > in cases there you need to pull one specific record
> >
> > /controller/action
> >
> > to pull a collection
> >
> > @user = User.find(params[:id])
> >
> > here you are pulling an specific user but
> >
> > root :to => 'pages#home'
> >
> > there is no id at the end of your  so params[:id] has nothing in it
> >
> > thats why Couldn't find User without an ID
> >
> >
> >
> > On Sat, Sep 11, 2010 at 2:08 PM, Anders_P <[email protected]>
> wrote:
> > > Thanks for your tips Colin!
> >
> > > Hi radhames!
> >
> > > Thanks for your help on my previous topic.
> >
> > > Here is my routes.rb file:
> >
> > >  resources :users
> > >  resources :sessions, :only => [:new, :create, :destroy]
> > >  resources :ads,      :only => [:new, :create, :destroy]
> >
> > >  match '/registrera',  :to => 'users#new'
> >
> > >  match '/inloggning',  :to => 'sessions#new'
> > >  match '/utloggning',  :to => 'sessions#destroy'
> >
> > >  root :to => 'pages#home'
> > >  match '/kontakt',   :to => 'pages#contact'
> > >  match '/om',        :to => 'pages#about'
> >
> > > Thanks!
> >
> > > // Anders
> >
> > > On 11 Sep, 19:21, radhames brito <[email protected]> wrote:
> > > > home action seems to be a member restful action and it needs an id to
> > > find
> > > > the record but you are not declaring that route the right way
> > > > show the routes please
> >
> > > > On Sat, Sep 11, 2010 at 8:25 AM, Colin Law <[email protected]>
> > > wrote:
> > > > > On 11 September 2010 12:14, Anders_P <[email protected]>
> wrote:
> >
> > > > > Could you not top post please, it is easier to follow the thread if
> > > > > comments are inserted into the previous post.  Thanks
> >
> > > > > > Hello Colin!
> >
> > > > > > Thanks for your reply. You are right about where the error is
> > > > > > occurring, this line is causing the error, @user =
> > > > > > User.find(params[:id]).
> >
> > > > > > I haven't passed the id to the home action, where should i do
> that
> > > and
> > > > > > how? Sorry for the noobish question but your help would be gold!
> >
> > > > > That depends what you are trying to do.  If you explain that we may
> be
> > > > > able to help.  If you do not know what the params hash is all about
> > > > > then you need to work through some basic tutorials.  See the rails
> > > > > guides athttp://guides.rubyonrails.org/ifyou are using Rails 3 or
> > > > >http://guides.rubyonrails.org/v2.3.8/ifusing version 2.3.x.  Start
> > > > > with Getting Started obviously, then work through the others.
> >
> > > > > Colin
> >
> > > > > > On 11 Sep, 12:43, Colin Law <[email protected]> wrote:
> > > > > >> On 11 September 2010 11:34, Anders_P <[email protected]>
> > > wrote:
> >
> > > > > >> > Hello!
> > > > > >> > I'm trying to create a list of user "ads" on my home page in
> my
> > > app.
> > > > > >> > But I don't get it to work. I'm a rails noob so it might be
> > > something
> > > > > >> > trivial.
> > > > > >> > I'm currently running into this error:
> >
> > > > > >> >  Couldn't find User without an ID
> >
> > > > > >> There should be a lot more information available with the error,
> > > > > >> including where it has failed.  The clue may be in the error
> message
> > > > > >> though, it is trying to find a user and there is no id.
> >
> > > > > >> > My pages controller where to home action is looks like this:
> >
> > > > > >> > def home
> > > > > >> >    @title = "Startsidan"
> > > > > >> >    @user = User.find(params[:id])
> >
> > > > > >> Possibly this is the problem line, if so then perhaps
> params[:id] is
> > > > > >> nil (hence the error message).  Have a look in the log
> > > > > >> (log/development.log) and it will tell you what the params are.
>  Are
> > > > > >> you passing the id to the home action?  Also you could have a
> look
> > > at
> > > > > >> the rails guide on debugging to see how to break into your
> > > application
> > > > > >> using ruby-debug and examine the data at that point.
> >
> > > > > >> Colin
> >
> > > > > >> >    @ads =  @user.Ad.paginate(:page => params[:page])
> > > > > >> > end
> >
> > > > > >> > And my ad partial looks like this:
> >
> > > > > >> > <div class="ad body_copy">
> > > > > >> >  <%= image_tag user.avatar.url(:thumb) %>
> > > > > >> >  <span class="content">
> > > > > >> >    <%= link_to user.name, user %>
> > > > > >> >    <%= user.ads.content %>
> > > > > >> >  </span>
> > > > > >> > </div>
> >
> > > > > >> > Any help would be appreciated! I hope that my explanation is
> clear
> > > > > >> > enough.
> >
> > > > > >> > Best regards
> > > > > >> > Anders
> >
> > > > > >> > --
> > > > > >> > 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
> > > > > [email protected].
> > > > > >> > To unsubscribe from this group, send email to
> > > > > [email protected]<rubyonrails-talk%[email protected]><rubyonrails-talk%2Bunsubscrib
> [email protected]><rubyonrails-talk%2Bunsubscrib
> > > [email protected]>
> > > > > .
> > > > > >> > For more options, visit this group athttp://
> > > > > groups.google.com/group/rubyonrails-talk?hl=en.
> >
> > > > > > --
> > > > > > 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
> > > [email protected].
> > > > > > To unsubscribe from this group, send email to
> > > > > [email protected]<rubyonrails-talk%[email protected]><rubyonrails-talk%2Bunsubscrib
> [email protected]><rubyonrails-talk%2Bunsubscrib
> > > [email protected]>
> > > > > .
> > > > > > For more options, visit this group at
> > > > >http://groups.google.com/group/rubyonrails-talk?hl=en.
> >
> > > > > --
> > > > > 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
> [email protected]
> > > .
> > > > > To unsubscribe from this group, send email to
> > > > > [email protected]<rubyonrails-talk%[email protected]><rubyonrails-talk%2Bunsubscrib
> [email protected]><rubyonrails-talk%2Bunsubscrib
> > > [email protected]>
> > > > > .
> > > > > For more options, visit this group at
> > > > >http://groups.google.com/group/rubyonrails-talk?hl=en.
> >
> > > --
> > > 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 [email protected]
> .
> > > To unsubscribe from this group, send email to
> > > [email protected]<rubyonrails-talk%[email protected]><rubyonrails-talk%2Bunsubscrib
> [email protected]>
> > > .
> > > For more options, visit this group at
> > >http://groups.google.com/group/rubyonrails-talk?hl=en.
>
> --
> 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 [email protected].
> To unsubscribe from this group, send email to
> [email protected]<rubyonrails-talk%[email protected]>
> .
> For more options, visit this group at
> http://groups.google.com/group/rubyonrails-talk?hl=en.
>
>

-- 
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 [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-talk?hl=en.

Reply via email to