覆盖Rails中的默认路由

时间:2013-03-05 05:27:49

标签: ruby-on-rails rails-routing

我们可以覆盖Rails提供的资源的默认路由吗?在我的应用程序中,我希望只能通过put方法访问new.html.erb。但是,通过定义map.resources :model将使用get方法访问new.html.erb并且我想要更改它。我可以吗?

2 个答案:

答案 0 :(得分:0)

一种方法是不将模型声明为routes.rb中的资源,并手动设置所需的路径。

例如,如果您的模型是文章,那么您可以在您的routes.rb

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

将'articles / new'与新操作匹配,并将其限制为PUT方法。

答案 1 :(得分:0)

如果您想为模型生成默认路线,而没有新操作,则可以在路径文件中使用此说明

resources :model, except: :new

在同一档案中,您将为新动作添加非管理(即“手动”)路线

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

注意:您还可以使用此语法match "articles/new" => "articles#new", via: :put,以便将来轻松添加更多方法

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