Hi guys,
I'm having a problem with nested routes and I don't know what I'm missing.
I have a "products" resource, which has a "available" collection action.
map.resources :courses, :member => { :confirm => :get}, :collection
=> { :available => :get }
Then I have the "users" resource, which has many "products"
map.resources :users, :has_many => [:subscriptions, :courses]
The problem is that if I try to access "available" products through a
user (/users/3/courses/available) I get redirected to the "show"
action with parameters:
Parameters: {"action"=>"show", "id"=>"available", "user_id"=>"3",
"controller"=>"products"}
I can't find the relevant section in the routing guide and I can't
figure it out.
Does anyone know what I am doing wrong?
Thanx a lot in advance.
11155
(-- --)
July 10, 2010, 6:26pm
2
Hi Leonardo
map.resources :courses, :member => { :confirm => :get}, :collection
=> { :available => :get }
Then I have the "users" resource, which has many "products"
map.resources :users, :has_many => [:subscriptions, :courses]
Assuming what you specified "products" is "courses". Change your
routes as below
map.resources :users do |user|
user.resources :courses, :member => { :confirm => :get}, :collection
=> {available => :get }
user.resources :subscriptions
end
Sijo
Hi Leonardo
Hi Sijo
map.resources :courses, :member => { :confirm => :get}, :collection
=> { :available => :get }
Then I have the "users" resource, which has many "products"
map.resources :users, :has_many => [:subscriptions, :courses]
Assuming what you specified "products" is "courses". Change your
routes as below
Yes, sorry, I mixed two applications with the same problem here.
map.resources :users do |user|
user.resources :courses, :member => { :confirm => :get}, :collection
=> {available => :get }
user.resources :subscriptions
end
This worked like a charm.
Thanx a lot!