1

在我的模型中有属于一个地方的住宿。使用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

那么,我应该放弃资源丰富的路线吗?或者有解决办法吗?

谢谢。

4

0 回答 0