iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 20
1
自我挑戰組

微程式語言白話文運動系列 第 20

resource or resources ?

  • 分享至 

  • xImage
  •  

沒錯!微人要延續昨天聊的 resources,但先聊聊 “單數” resource

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 那可想而知這購物車會...
explosion

另外微人也來聊聊昨天說到的 “嵌套資源永遠不要超過 1 層” 這件事的解決方法。避免我們一路把程式碼往地獄寫,rails 也提供我們其他方法可以用,那就是:

淺層嵌套 shallow

shallow 就是一個能讓我們在指定路徑減少延伸,以這個狀況來說,在所有貼文底下都可以有多個評論,且只需要新增留言這功能。

    resources :posts, shallow: true do
      resources :comments, shallow: true, only: [:create]
    end

顯示路徑:
path

好了,今天就先聊到這囉!我們明天見,掰餔。


上一篇
微聊 MVC 模式 Route 裡的 resources
下一篇
resources 的8條路徑
系列文
微程式語言白話文運動30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言