Rails路由具有多态和所有者关系

时间:2013-03-30 16:14:11

标签: ruby-on-rails polymorphic-associations rails-routing

我有一个导航应用,其中Users可以创建Programs以及其他未来的内容,我们会说Plans(假设)。

Users还可以like ProgramsPlans。 (就像是多态的)

我正在尝试找出路线,以便我看到ProgramsUser创建的所有内容,User likesPrograms或只是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)”方法,它返回所请求的任何类的关系。我只需要路由帮助。

1 个答案:

答案 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