我遇到了奇怪的错误。我不确定这是错误。但是我以前从未遇到过这种奇怪的行为。
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 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)之外的任何东西都会产生这样的结果。
可能在某处损坏了路由缓存?
答案 0 :(得分:5)
resource
表示单例资源:换句话说,您告诉Rails每个用户只有一个监视,因此传递ID将毫无用处。
resources
是获取附加了ID的路由的标准调用。
所以,基本上,问题是变形问题,但对于resource
或resources
,不是路由的名称。有关更多信息,请查看Ruby on Rails routing guide。它很好地解释了单身人士资源与更常见的资源之间的区别。