0

我有这样的路线

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

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

/亚利桑那州/AZ2​​2

发现这段代码很好用

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'

有没有办法修复路线?还是我错误地使用了静态页面,因为我正在向它们提供状态列表?

4

1 回答 1

0

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

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
于 2013-08-14T02:58:18.973 回答