0

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

4

2 回答 2

1

如果你想为你的模型生成默认路由,没有新的动作,你可以在你的路由文件中使用这个指令

resources :model, except: :new

在同一个文件中,您将为新操作添加非托管(即“手动”)路线

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

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

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

于 2013-03-05T05:59:54.213 回答
0

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

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

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

这会将“articles/new”与新操作匹配,并将其限制为仅 PUT 方法。

于 2013-03-05T05:43:11.010 回答