Thanks to all who responded.

I decided to go with the more RESTful approach:

map.resources :users, :has_many => :payments

and use the index action on the payments controller.

Cheers
Adrian


On Jan 27, 1:11 am, Jeff <[email protected]> wrote:
> On Jan 26, 5:08 am, Adrian <[email protected]> wrote:
>
>
>
> > Hi All
>
> > I'm having some issues with the following routes problem.
>
> > The routes.rb file ...
> >   map.resources :users
> >   map.connect '/users/view_payments/:user_id', :controller =>
> > 'users', :action => 'view_payments'
>
> > The users_controller.rb file ...
> >   def view_payments
> >     @user = User.find[:params[:user_id]]
> >     @payments = @user.payments
> >   end
>
> > The routes list from a rake routes ...
> >      /users/view_payments/:user_id
> > {:controller=>"users", :action=>"view_payments"}
>
> > The .../views/users/view_payments.html.erb file ...
> >    <%= link_to 'View Payments', :controller => 'users', :action =>
> > 'view_payments', :user_id => @user.id %>
>
> > Then the URL generated from the link_to ...
> >    http://localhost:3000/users/view_payments/2
>
> > But this returns a 404error
>
> > Anyhelp/ideas appreciated
>
> > Cheers
> > Adrian
>
> As others have said, you just need to define the custom action in your
> routes.
>
> But I might suggest a more restful approach:
>
> map.resources :users, :has_many => :payments
>
> Then you can use links like
>
> http://localhost:3000/users/2/payments
>
> This calls the index action of a Payments controller. You can look at
> params[:user_id] to know which user is involved.  This way you don't
> need any custom actions.
>
> Just a thought.
>
> Jeff
> switchingtorails.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 [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