2013-03-05 99 views
0

我們可以覆蓋Rails提供的資源的默認路由嗎?在我的應用程序中,我只想通過put方法訪問new.html.erb。但是,通過定義map.resources :model將訪問get方法給new.html.erb,我想改變它。我可以嗎?覆蓋Rails中的默認路由

回答

0

如果您想爲您的模型默認路由,如果沒有新的動作,你可以在你的路由文件

resources :model, except: :new 

使用該指令在同一文件中,你將添加一個非管理的(即「手冊」)的新的行動路線

put "articles/new" => "articles#new" 

注意:您也可以使用這個語法match "articles/new" => "articles#new", via: :put,讓你可以輕鬆地在將來添加更多的方法

更多信息:http://guides.rubyonrails.org/routing.html

0

做到這一點的一種方法是不要將模型聲明爲routes.rb中的資源,並手動設置您想要的路線。

舉例來說,如果你的模型是第二條,那麼你可能只是在你的routes.rb

put "articles/new" => "articles#new" 

將匹配「的文章/新」新的行動,並限制它只是PUT方法。