[RUBY] [Spécification du chemin] Spécifiez le chemin de la ressource imbriquée

Aperçu

Je ne savais pas trop comment spécifier le chemin de la ressource imbriquée pendant un moment, donc je l'enregistrerai sous forme de mémorandum.

environnement

・ Rubis '2.5.7' ・ Rails '5.2.3' ・ Rspec-rails '4.0.0.beta2'

Comment spécifier

** Conclusion: ** rails routes pour lister et vérifier les routes!

(Exemple) Spécifiez le chemin dans le test de demande de Rspec

Supposons que vous ayez déclaré le routage comme ceci:

routes.rb


  resources :datespots do
    resources :comments, only: [:create, :destroy]
  end

rails routes dans le terminal listera les routes.

                   Prefix Verb   URI Pattern                                                                              Controller#Action
(réduction)
        datespot_comments POST   /datespots/:datespot_id/comments(.:format)                                               comments#create
         datespot_comment DELETE /datespots/:datespot_id/comments/:id(.:format)                                           comments#destroy
(réduction)

Sur cette base, vous pouvez spécifier le chemin et c'est OK!

comments_spec.rb


(réduction)
    it "Les commentaires avec un contenu valide peuvent être enregistrés" do
      expect {
        post "/datespots/#{datespot.id}/comments", params: {
          datespot_id: datespot.id,
          comment: { content: "C'est à la mode!" }
        }
      }.to change(datespot.comments, :count).by(1)
    end
(réduction)

référence

[Rails Guide 2.7 Ressources imbriquées](https://railsguides.jp/routing.html#%E3%83%8D%E3%82%B9%E3%83%88%E3%81%97%E3%81% 9F% E3% 83% AA% E3% 82% BD% E3% 83% BC% E3% 82% B9 "Rails Guide 2.7 Ressources imbriquées")

Recommended Posts

[Spécification du chemin] Spécifiez le chemin de la ressource imbriquée
Remarque sur le chemin de request.getRequestDispatcher