gpt4 book ai didi

ruby-on-rails - 奇怪的 Rails 资源路由行为

转载 作者:行者123 更新时间:2023-12-04 05:40:29 25 4
gpt4 key购买 nike

我遇到了奇怪的错误。我不确定这是错误。但是我以前从未遇到过这种奇怪的行为。

resource :watches

制作如此奇怪的路由表:

        watches POST   /watches(.:format)                         watches#create
new_watches GET /watches/new(.:format) watches#new
edit_watches GET /watches/edit(.:format) watches#edit
GET /watches(.:format) watches#show
PUT /watches(.:format) watches#update
DELETE /watches(.:format) watches#destroy

如您所见没有 ID 参数和乱七八糟的操作

同时:

resources :mibs

制定正确的路线

           mibs GET    /mibs(.:format)                            mibs#index
POST /mibs(.:format) mibs#create
new_mib GET /mibs/new(.:format) mibs#new
edit_mib GET /mibs/:id/edit(.:format) mibs#edit
mib GET /mibs/:id(.:format) mibs#show
PUT /mibs/:id(.:format) mibs#update
DELETE /mibs/:id(.:format) mibs#destroy

我认为这可能是变形器问题,但尝试使用“rockets”而不是“watches”会得到相同的结果:

        rockets POST   /rockets(.:format)                         rockets#create
new_rockets GET /rockets/new(.:format) rockets#new
edit_rockets GET /rockets/edit(.:format) rockets#edit
GET /rockets(.:format) rockets#show
PUT /rockets(.:format) rockets#update
DELETE /rockets(.:format) rockets#destroy

除了我的前两个资源(服务器和 mib)之外的任何东西都会产生这样的结果。

可能在某处损坏了路由缓存?

最佳答案

resource 表示单例资源:换句话说,您告诉 Rails 每个用户只有一个 watch ,因此传递 ID 将毫无用处。

resources 是获取附加 ID 的路由的标准调用。

所以,本质上,问题是一个变形器问题,但对于 resourceresources,而不是对于你的路由名称。有关更多信息,请查看 Ruby on Rails routing guide .它很好地解释了单例资源和更常见的资源之间的区别。

关于ruby-on-rails - 奇怪的 Rails 资源路由行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12233450/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com