簡體   English   中英

限制資源路由並在Rails 3中添加其他非RESTful路由

[英]Restricting resource routes and adding additional non-RESTful routes in Rails 3

我無法在這里或其他任何地方找到限制資源路由和在Rails 3中添加其他非RESTful路由的任何內容。這可能非常簡單,但我遇到的每個示例或解釋只針對一個案例而不是兩者都在同一時間。

這是我在Rails 2中所做的一個例子:

map.resources :sessions, :only => [:new, :create, :destroy], :member => {:recovery => :get}

非常簡單,我們只需要7個RESTful路由中的3個,因為其他路由對此資源沒有任何意義,但我們還想添加另一個用於帳戶恢復的路由。

現在從我收集的內容來看,這些事情中的任何一個都非常簡單:

resources :sessions, :only => [:new, :create, :destroy]

就像在Rails 2中一樣。並且:

resources :sessions do
  member do
    get :recovery
  end
end

那么,我如何將這兩者結合起來呢? 我還可以使用舊的Rails 2方式嗎? 在Rails 3中有一種首選的方法嗎?

您可以將參數和塊傳遞給resources

resources :sessions, :only => [:new, :create, :destroy] do
  get :recovery, :on => :member
end

並用rake routes測試它。

它應該像這樣工作

resources :sessions, :only => [:new, :create, :destroy] do
  member do
    get :recovery
  end
end

正如coreyward所提出的,還有一種更短的方式。

檢查導軌導軌,“ 從外部進行導軌布線 ”。 我還可以推薦Obie Fernandez的“The Rails 3 Way”,它在Routing和RESt上有兩個相當不錯的章節。

干杯

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM