Проблема с тем же ресурсом, доступным по двум маршрутам

Я занимаюсь разработкой простого сайта для обмена изображениями, чтобы обучить моего ruby-on-rails-fu. У меня есть следующие ресурсы в моем config/routes.rb файл.

resources :users do
  resources :images
end

resources :images

Вот проблема, с которой я сталкиваюсь - как мне реализовать такие функции, как "последние изображения" и "ваши подписки на изображения"? Вот как выглядит URL ресурса vanilla:

/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 хеш хватит? Есть ли какие-либо плагины, о которых я не знаю (так как я не мог придумать простого описания этой проблемы).

1 ответ

Решение

Я бы назначил один на другой контроллер, чтобы вы не перепутали их и не запутали себя.

resources :users do
  resources :images, :controller => user_images
end

resources :images

Сейчас в user_images_controllerВы можете рассмотреть возможность получения объекта пользователя с помощью before_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
Другие вопросы по тегам