Проблема с тем же ресурсом, доступным по двум маршрутам - PullRequest
0 голосов
/ 17 октября 2010

Я занимаюсь разработкой простого сайта для обмена изображениями, чтобы обучить моего 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 Ответ

1 голос
/ 17 октября 2010

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

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
...