Thanks radhames!

I finally got it to work, it turned out that i didn't need to define
@user in my home action, and it was causing the error. Sorry if my
description was unclear. Thanks for your help!

// Anders

On 12 Sep, 20:41, radhames brito <[email protected]> wrote:
> 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/ifyouare using Rails 3 or
> > > > > >http://guides.rubyonrails.org/v2.3.8/ifusingversion 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 = �[email protected](: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%2Bunsubscrib
> > > > > >  [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%2Bunsubscrib
> > > > > >  [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%2Bunsubscrib
> > > > > >  [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%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%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].
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-talk?hl=en.

Reply via email to