沒錯!微人要延續昨天聊的 resources,但先聊聊 “單數” resource
resource 其實也是個方法跟 resources 除了單數的意思外,其實 resource 方法是不會做出含有 :id 的路徑,也不會有 index 頁面,什麼是不含有 :id 路徑?這其實跟使用者的權限有一些關係,簡單來說,單數 resource 是更動於“個人”,而複數 resources 則是可以依據編碼選擇每一個人。
以下面這個例子來說:
resource :cart, only:[:show, :destroy] do
collection do
post :add, path:'add/:id'
get :payment
post :checkout
end
end
例如今天是設計使用者只能看到自己的購物車,並且新增或結帳商品只會加入個人的帳號中。如過是複數 resources 那可想而知這購物車會...
另外微人也來聊聊昨天說到的 “嵌套資源永遠不要超過 1 層” 這件事的解決方法。避免我們一路把程式碼往地獄寫,rails 也提供我們其他方法可以用,那就是:
shallow 就是一個能讓我們在指定路徑減少延伸,以這個狀況來說,在所有貼文底下都可以有多個評論,且只需要新增留言這功能。
resources :posts, shallow: true do
resources :comments, shallow: true, only: [:create]
end
顯示路徑:
好了,今天就先聊到這囉!我們明天見,掰餔。