0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【パス指定】ネストしたリソースのパス指定

Last updated at Posted at 2020-08-17

概要

ネストしたリソースのパス指定方法について、一瞬戸惑ってしまったので備忘録として記録します。

環境

・ruby '2.5.7'
・rails '5.2.3'
・rspec-rails '4.0.0.beta2'

指定方法

結論: rails routesしてルーティングを一覧表示して確認する!

####(例) Rspecのリクエストテストでパス指定をする
次のような、ルーティングを宣言していたとします。

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

ターミナルでrails routesすると、ルーティングが一覧表示される。

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

これを元に、パス指定すればOK!

comments_spec.rb
(省略)
    it "有効な内容のコメントが登録できること" do
      expect {
        post "/datespots/#{datespot.id}/comments", params: {
          datespot_id: datespot.id,
          comment: { content: "オシャレですね!" }
        }
      }.to change(datespot.comments, :count).by(1)
    end
(省略)

参考

Rails ガイド 2.7 ネストしたリソース

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?