Я пытаюсь сделать несколько хороших простых маршрутов в Rails 3 с 2-мя пользовательскими сопоставлениями, которые предполагают, что root: id будет городом, а: city_id /: id будет местом ... кажется, что работает нормально, за исключением пытаюсь редактировать.
Т.е..
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 для явного обхода этого, но мне интересно, есть ли что-нибудь лучше, чтобы сделать в моем route.rb, чтобы сделать мою жизнь проще, чем исправлять?
Спасибо