Ruby on rails Rails 4路由冲突

Ruby on rails Rails 4路由冲突,ruby-on-rails,Ruby On Rails,我正在重写一个rails应用程序,大约5年前我用rails 1.0做的。 当我尝试浏览localhost/companys/search\u updates/时,我收到此错误。。。我知道这是一个路由错误,因为当我删除resources:companys from router.rb时,事情就正常了。。。如何解决这个问题?我是否需要为我创建的每个操作手动添加路由 尝试访问本地主机/公司/搜索更新时出错/ The action 'show' could not be found for Compan

我正在重写一个rails应用程序,大约5年前我用rails 1.0做的。 当我尝试浏览localhost/companys/search\u updates/时,我收到此错误。。。我知道这是一个路由错误,因为当我删除resources:companys from router.rb时,事情就正常了。。。如何解决这个问题?我是否需要为我创建的每个操作手动添加路由

尝试访问本地主机/公司/搜索更新时出错/

The action 'show' could not be found for CompaniesController
控制器

class CompaniesController < ApplicationController
  def index
    @companies = Company.all
  end
  def search_updates
    # Execute code to search for updates
    # Redirect to results
  end
end
搜索_updates.html.erb

Hello Updates!

找不到CompanyController的操作“show”

Rails路由按照指定的顺序匹配,因此如果 拥有资源:a以上的公司获取“公司/搜索更新”展示活动的 资源行的路由将在get行之前匹配。到 要解决此问题,请将get行移到resources行上方,以便 第一名

资源路由允许您快速声明所有公共资源 给定资源丰富的控制器的路由。而不是宣布 为您的索引、显示、新建、编辑、创建、更新和 销毁操作,一个足智多谋的路由在一行命令中声明它们 代码

如果您的控制器上只有索引方法(默认的CURD-rails),则可以为其指定路由

resources :accounts
get 'companies/search_updates' =>   'companies#search_updates'
resources :companies, :only => [index]

这就解决了它。。。但请告诉我更多。我是否需要手动添加每条路线,还是有一些路线需要自动添加?在您的情况下,是的。但是在rails中,有一个用于自动CURD的生成器(scaffold),rails中的scaffold是一整套模型、该模型的数据库迁移、用于操作它的控制器、用于查看和操作数据的视图,以及用于上述每一项的测试套件。ref:[source 1](rails生成)
resources :accounts
get 'companies/search_updates' =>   'companies#search_updates'
resources :companies
resources :accounts
get 'companies/search_updates' =>   'companies#search_updates'
resources :companies, :only => [index]