在我的模型中有属于一个地方的住宿。使用friendly_id,我的资源丰富的路线将如下所示:
/localities
/localities/:locality-name
/accommodations
/accommodations/:accommodation-name
问题是我希望住宿详细信息 URL 如下所示:
/accommodations/:locality-name/:accommodation-name
并且还有一个用于住宿的位置过滤器:
/accommodations/:locality-name
当然,我可以将以下内容添加到routes.rb
:
resources :localities do
resources :accommodations
end
...这将导致:
/localities/:locality-name
/localities/:locality-name/accommodations
/localities/:locality-name/accommodations/:accommodation-name
但我希望从住宿开始,/accommodations
而不是嵌套在地区之下。
我得到的最接近的是将上面的内容修改为:
resources :localities, :path => 'accommodations' do
resources :accommodations, :path => '', :except => :index
end
这可以满足我的要求,但会颠倒过来,弄乱我的资源。此外,我可以添加resources :localities, :path => 'localities'
,但随后会同时出现和routes.rb
的位置索引视图。我希望这些 URL 可以作为它们所代表的东西的某种门户。/localities
/accommodations
那么,我应该放弃资源丰富的路线吗?或者有解决办法吗?
谢谢。