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