[Rails] 라우팅이 중첩될 때는 Resources가 좋은 것 같아요.

8791 단어 onRubyRails
⭐𐁨Rails는 상당한 첫 번째 학자이다.
나는 간단한 이해로 같은 사람의 참고가 되고 싶다.

⭐상황을 재촉하다


・간단한 책 투고 응용
/투고한 책에 아주 좋습니다!기능 및 주석 기능
・config/routes.rb내
정말 좋다!부모님의 북에 (favorite)과 댓글(comment)을 끼워넣고 싶어요.
・favorite와comment는 Resources를 사용할지 아니면 Resource를 사용할지 모른다
(참고한 교재는favorite가resource에서comment에recorurces를 사용해서 혼란을 초래했습니다.)
우선 끼워넣기 전에 리소스와 리소스의 패스가 어떻게 다른지 확인하세요.

・resources


routes.rb
resources :books
단말기
     books   GET    /books(.:format)            books#index                                                                    
           POST   /books(.:format)            books#create                  
  new_book   GET    /books/new(.:format)        books#new                                                                  
  edit_book  GET    /books/:id/edit(.:format)   books#edit                                                               
       book  GET    /books/:id(.:format)        books#show                                                           
             PATCH  /books/:id(.:format)        books#update                                                          
             PUT    /books/:id(.:format)        books#update                                                               
             DELETE /books/:id(.:format)        books#destroy   

・resource


routes.rb
resource :book
단말기
 new_book   GET    /book/new(.:format)         books#new                                                                 
 edit_book  GET    /book/edit(.:format)        books#edit                                                                  
 book       GET    /book(.:format)             books#show                                                             
            PATCH  /book(.:format)             books#update                                                        
            PUT    /book(.:format)             books#update                                                         
            DELETE /book(.:format)             books#destroy                                                       
            POST   /book(.:format)             books#create  

위에서 확인할 수 있는 이 두 개가 달라요.


resources에서 경로에 id를 가지게 하고 컨트롤러에 index 동작을 생성합니다
resource에서 경로에 id가 없고 index 동작도 생성하지 않습니다
resources는 여러 개의 존재하는 자원에 대한 REST 루트를 설계할 때 사용합니다(7가지 동작)
resource는 하나의 자원만 존재하는 REST 루트를 설계할 때 사용합니다

더욱 구체적인 장면


아이디를 만들 수 없습니다.
여러 리소스에서 "하나의 리소스"를 지정하지 않을 수 있습니다.
(원래 자원이 하나밖에 없어서 index가 필요 없어요)
지정할 때는'쇼 화면'또는'edit 화면'이 필요할 때입니다.
아기 파트를 고민할 때'show 화면'이나'edit 화면'이 필요한가?판단을 내리다.

이번 결론.


정말 좋다!show 화면 등을 준비하지 않은 앱이기 때문에
이렇게 끼워 넣습니다.
routes.rb
  resources :books do
    resource :favorite, only: [:create, :destroy]
    resource :book_comment, only: [:create, :destroy]
  end
단말기
book_favorite       DELETE /books/:book_id/favorite(.:format)    favorites#destroy                                                   
                    POST   /books/:book_id/favorite(.:format)    favorites#create                                                     
book_book_comment   DELETE /books/:book_id/book_comment(.:format)  book_comments#destroy                                                 
                    POST   /books/:book_id/book_comment(.:format)  book_comments#create                                                 

총결산


디테일한 이해를 중시하세요.
나는 당시의 상황에 맞추어 잘 조합할 수 있을 것 같다
지적할 점이 있으면 말씀해 주세요.

참고 자료


https://qiita.com/Atsushi_/items/bb22ce67d14ba1abafc5
https://railsguides.jp/routing.html
참고할게요!
대단히 감사합니다😊

좋은 웹페이지 즐겨찾기