如何避免解决Rails中的路线?

问题描述

| 我正在开发一个带有管理部分和公共部分的Rails应用程序。在公共部分,我只想解析索引并显示路线
resources :services,:only => [:index,:show]
但是,当我点击新操作的标准URL时,它将解析为ID为“'new \'”的show操作。那就是http://foo.com/services/new返回错误“找不到ID为新的服务”。无论如何,我可以告诉Rails不要解决/ services / new吗? 我已经尝试过
resources :services,:show],:except => :new
resources :services,:except => :new,:show]
没有成功。 ETA(根据要求): 我的整个路线文件(无注释):
MyApp::Application.routes.draw do
  resources :services,:show]
  resources :packages,:show]

  get \"pages/home\"
  get \"pages/about\"
  get \"pages/help\"

  root :to => \'packages#index\'

  namespace \"admin\" do
    get \"pages/home\"
    get \"pages/about\"
    get \"pages/help\"

    resources :services
    match \"/services/:id/add_to_package/:package_id\" => \"services#add_package\",:as => :add_package_to_service,:via => :post,:id => /\\d+/,:package_id => /\\d+/
    match \"/services/:id/remove_from_package/:package_id\" => \"services#remove_package\",:as => :remove_package_from_service,:package_id => /\\d+/

    resources :packages 
    match \"/packages/:id/add_service/:service_id\" => \"packages#add_service\",:as => :add_service_to_package,:service_id => /\\d+/
    match \"/packages/:id/remove_service/:service_id\" => \"packages#remove_service\",:as => :remove_service_from_package,:service_id => /\\d+/

    resources :users

    root :to => \'pages#home\'
  end
end
    

解决方法

        您可以尝试对
:id
参数施加约束
resources :services,:constraints => {:id => /\\d+/},:only => [:index,:show]
这是假设您的
:id
都是基于数字的。 我也遇到了类似的情况,即重定向与资源冲突,从而解决了该问题。     

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...