2013-07-21 4 views
1

У меня возникли проблемы с ресурсами гнездования. Я хочу узнать, есть ли лучший способ сделать что-то.Альтернативные вложенные маршруты

У меня есть приложение списка дел с тремя ресурсами пользователя, списка и задачи. Каждый пользователь имеет свой собственный список дел.

Мой вопрос в том, как еще я могу настроить ассоциации и маршруты, чтобы я не мог вложить три слоя в мой файл маршрута.

resources :users do 
resources :list do 
    resources :task do 
    end 
end 
end 

Я хочу предотвратить это. веселит

+0

Могут ли пользователи получить доступ списки других пользователей? – Stefan

+0

Других пользователей не может. – Joshua

ответ

1

Поскольку пользователь может видеть только ее/его собственные списки и задачи, вы не должны гнездиться эти ресурсы. Определить их отдельно в файле маршрутов:

resources :users 

resources :lists do 
    resources :tasks 
end 

и получения текущего пользователя из вашей структуры аутентификации:

class ListsController < ApplicationController 

    def index 
    @lists = current_user.lists 
    end 

end 
+0

Хорошо спасибо Стефан. – Joshua

1

Возможно дублировать для: Rails 3 level deep nested resources

Попробуйте поэкспериментировать с: неглубокий вариант:

resources :users, shallow: true do 
    resources :lists, shallow: true do 
    resources :task 
    end 
end 
+0

Не знал, как назвать поиск такой темы. Что будет делать неглубокая опция и какие изменения, если таковые имеются, я должен внести в действия контроллера. – Joshua

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