我有一个导航应用,其中Users
可以创建Programs
以及其他未来的内容,我们会说Plans
(假设)。
Users
还可以like
Programs
和Plans
。 (就像是多态的)
我正在尝试找出路线,以便我看到Programs
和User
创建的所有内容,User
likes
或Programs
或只是Plans
User
likes
。
我有这些路线,但这似乎不对。
resources :users, :only => [:index,:show] do
resources :programs, :only => [:index]
resources :likes, :only => [:index] do
resources :programs, :only => [:index]
end
end
programs
user
需要以下网址的likes
路由:users / user_id / likes / like_id / program。
如何创建以下网址:users / user_id / likes / programs并获取所有喜欢的程序。
我正在使用Socialization Gem,它有一个“likeables_relation(Class)”方法,它返回所请求的任何类的关系。我只需要路由帮助。
答案 0 :(得分:1)
我刚试过以下路线:
resources :users, :only => [:index,:show] do
resources :programs, :only => [:index]
resources :likes, :only => [:index] do
collection do
get :programs
end
end
end
和
http://localhost:3000/users/1/likes/programs
工作正常。
它需要向LikesController类添加一个新的动作“程序”。
这是rake路线返回的内容:
programs_user_likes GET /users/:user_id/likes/programs(.:format) likes#programs