Rails路由解析,on 參數的三種取值:collection,member,new

使用資源路由時會產生七種特定的路由,但在實際過程中我們有時候需要一些自定義的方法,這時候就可以使用on參數,他有三個取值:new ,member,colection

    :member 是對單個實體進行操作,創建路由格式是: /:controller/:id/:your_method
    :collection 是對實體集合進行操作,創建路由格式是: /:controller/:your_method
    :new 是新建一個實體,創建路由格式是: /:controller/:your_method/new

    :member 是對單個實體進行操作,創建路由格式是: /:controller/:id/:your_method
    :collection 是對實體集合進行操作,創建路由格式是: /:controller/:your_method
    :new 是新建一個實體,創建路由格式是: /:controller/:your_method/new

例如:

    resources :photos do
    member do
    get 'preview'
    end
    end 
將會添加一個路由:GET請求/photos/1/preview路由到PhotosControllerpreview action,同時也會新建preview_photo_url  preview_photo_path這兩個helpers

上面的member block中可以添加很多條記錄。如果只有一條,一般會這樣寫: 
  1. resources :photos do
  2. get 'preview',n => :member
  3. end


Rails.application.routes.draw do
    resources :orders do
      post :confirm, on: :member
      delete :cancel, on: :member
    end
  end
 Rails.application.routes.draw do
    resources :orders do
      member do
        post :confirm
        delete :cancel
      end
    end
  end
  Rails.application.routes.draw do
    resources :orders do
      get :cancelled, on: :collection
    end
  end
esources :orders do
      post :confirm, on: :member
      delete :cancel, on: :member
    end

 member do
        post :confirm
        delete :cancel
      end




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章