Problème avec la même ressource, accessible par deux voies
-
08-10-2019 - |
Question
Je développe le site de partage d'images simple pour former mon rubis sur des rails-fu. Je les ressources suivantes dans mon fichier config/routes.rb
.
resources :users do
resources :images
end
resources :images
Voici le problème que je fais face - comment dois-je aller sur la mise en œuvre des fonctionnalités telles que « dernières images » et « vos abonnements d'image »? Avoir url des ressources de la vanille est ici est à quoi il ressemble maintenant:
/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.
Comment iriez-vous sur la gestion de l'objet « parent » d'images lors de l'accès action index dans le contrôleur d'images? Would simple vérification pour :user_id
dans hash suffisent params
? Y a-t-il des plugins que je ne suis pas au courant (puisque je ne pouvais pas penser à une simple description de ce problème).
La solution
J'assignerait un à un autre contrôleur, de sorte que vous ne les mélanger et de vous confondre.
resources :users do
resources :images, :controller => user_images
end
resources :images
à user_images_controller
, vous pouvez envisager d'obtenir l'objet utilisateur par before_filter (car il dépend d'un utilisateur donné: D)
UserImagesController
before_filter :get_user
def get_user
@user = User.find(params[:id])
// You could also do error checking in before_filters
end