Проблема с тем же ресурсом, доступным через два маршрута
-
08-10-2019 - |
Вопрос
Я разрабатывающую простое место для обмена изображения для обучения моих Ruby-on-Rails-Fu. У меня есть следующие ресурсы в моем config/routes.rb
файл.
resources :users do
resources :images
end
resources :images
Вот проблема, с которой я сталкиваюсь - как мне пойти в реализацию функциональности, такие как «последние изображения» и «ваши подписки на изображения»? Наличие ванильного ресурса URL здесь, как это выглядит сейчас:
/users/N/images # ImagesController#index action for listing all images for a user
/images # ImagesController#index action for listing all possible images from all users.
Как бы вы пошли по управлению «родительским» объектом изображений при доступе к индексу действий в контроллере изображений? Будет просто проверить :user_id
в params
Хеш достаточно? Есть ли плагины, я не знаю (так как я не мог придумать простое описание этой проблемы).
Решение
Я бы назначал один другой контроллер, чтобы вы не будете смешать их и спутать себя.
resources :users do
resources :images, :controller => user_images
end
resources :images
Сейчас в user_images_controller
, Вы можете рассмотреть возможность получения пользовательского объекта From_Filter (потому что это зависит от данного пользователя: D)
UserImagesController
before_filter :get_user
def get_user
@user = User.find(params[:id])
// You could also do error checking in before_filters
end