Ruby on rails 静态路由不再工作,正在传递id
我有这样的路线 /州/亚利桑那州/单位/AZ22 我想删除STATE和UNIT的控制器名称,并获得这样的路由 /亚利桑那州/AZ22 发现这个代码非常有效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 但是现在我的静态路径不起作用了,因为它认为它是一个状态。我在静态页面上有一个状
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
的状态。