Ruby on rails 静态路由不再工作,正在传递id

Ruby on rails 静态路由不再工作,正在传递id,ruby-on-rails,Ruby On Rails,我有这样的路线 /州/亚利桑那州/单位/AZ22 我想删除STATE和UNIT的控制器名称,并获得这样的路由 /亚利桑那州/AZ22 发现这个代码非常有效 resources :states, :except => [:index ], :path => '/' do resources :units, :except => [:index ], :path => '/' end 但是现在我的静态路径不起作用了,因为它认为它是一个状态。我在静态页面上有一个状

我有这样的路线

/州/亚利桑那州/单位/AZ22

我想删除STATE和UNIT的控制器名称,并获得这样的路由

/亚利桑那州/AZ22

发现这个代码非常有效

resources :states, :except => [:index ], :path => '/' do
    resources :units, :except => [:index ], :path => '/'
  end
但是现在我的静态路径不起作用了,因为它认为它是一个状态。我在静态页面上有一个状态列表

Error: Couldn't find State with id=about

Code throwing error : def set_state
         @state = State.friendly.find(params[:id])
      end
这些是我的静态页面路由

  match '/contact', to: 'static_pages#contact', via: 'get'
  match '/about', to: 'static_pages#about', via: 'get'
  root 'static_pages#home'
有没有办法确定路线?
还是因为我正在向静态页面提供状态列表而错误地使用了静态页面?

路由按照指定的顺序匹配。因此,请按以下方式组织您的路线,并尝试一下:

root 'static_pages#home'
match '/contact', to: 'static_pages#contact', via: 'get'
match '/about', to: 'static_pages#about', via: 'get'

resources :states, :except => [:index ], :path => '/' do
  resources :units, :except => [:index ], :path => '/'
end

美好的我知道它们很重要,但出于某种原因,我认为资源问题必须放在首位。现在这是有道理的,但请谨慎行事,因为(不太可能发生,但…)永远不会有一个名为
contact
about
的状态。