我正在尝试使用 2 个自定义匹配器在 Rails 3 中创建一些不错的简单路线,这些匹配器假定根 :id 将是一个城市,而 :city_id/:id 将是一个地方......它似乎工作正常,除非尝试编辑.
IE。
root_url/countries/france
root_url/paris/some_place
root_url/paris
这是我的代码更准确。
resources :countries do
resources :cities
end
resources :cities do
resources :places, :reviews
end
match ':id' => 'cities#show', :as => :city, :method => :get
match ':city_id/:id' => 'places#show', :as => :city_place, :method => :get
当我尝试编辑记录时,这似乎完全可以接受。html如下:
<% form_for @city do |f| %>
<% end %>
产生:
<form accept-charset="UTF-8" action="/kiev" class="edit_city" id="edit_city_3581" method="post">
只有在以下情况下才会起作用:
<form accept-charset="UTF-8" action="/cities/kiev" class="edit_city" id="edit_city_3581" method="post">
我知道我可以简单地提供一个更高级的 form_for 路由来解决这个问题,但我想知道在我的 routes.rb 中是否有更好的事情可以让我的生活更轻松而不是打补丁?
谢谢