0

У меня есть приложение для рельсов, где Users может создать Programs и другие вещи, которые еще впереди, скажем Plans (гипотетически).Рельсы маршрутов с полиморфными и собственными отношениями

Users также может likePrograms и Plans. (Как это полиморфный)

Я пытаюсь выяснить маршруты, чтобы я мог видеть Programs в User создает все вещи, Userlikes, или просто Programs или просто PlansUserlikes. У меня эти маршруты, но это не кажется правильным.

resources :users, :only => [:index,:show] do 
    resources :programs, :only => [:index] 
    resources :likes, :only => [:index] do 
     resources :programs, :only => [:index] 
    end 
end 

Маршрут для programs что userlikes требует URL, как: пользователи/user_id/нравится/like_id/программа.

Как создать URL-адрес, например: users/user_id/likes/programs, и получить все понравившиеся программы.

Я использую Socialization Gem, который имеет метод «likeables_relation (Class)», который возвращает отношение любого класса. Мне просто нужна помощь в маршрутизации.

+0

Что ваши модели выглядеть, и вы вы с помощью Has Многого Принадлежит Многие полиморфные отношения не так ли? Возможно, вам просто нужно объявить маршрут старомодным способом, потому что много полигонов, принадлежащих многим, не является стандартным. – rovermicrover

ответ

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.

Это то, что реки маршруты возвращает:

programs_user_likes GET /users/:user_id/likes/programs(.:format) likes#programs 
+0

Хорошо работает для меня. Благодаря! – dewyze

Смежные вопросы