Я начинающий разработчик Rails, который получает следующую ошибку при попытке получить доступ к «новому» действию на моем CityController:
undefined method `cities_path' for #<#<Class:0x104608c18>:0x104606f08>
Extracted source (around line #2):
1: <h1>New City</h1>
2: <%= form_for(@city) do |f| %>
3: <%= f.error_messages %>
4:
5: <div class="field">
В качестве предыстории у меня есть модель состояния со многими городами. Я получаю эту ошибку после нажатия на следующую ссылку со страницы показа состояния:
<p>Add a city: <%= link_to "Add city", new_state_city_path(@state) %></p>
Когда я запускаю 'rake: маршруты', он говорит, что это законный маршрут ...
Для получения дополнительной информации вот новое действие CityController:
def new
@city = City.new
respond_to do |format|
format.html # new.html.erb
format.xml { render :xml => @city }
end
end
Вот (полная) форма в представлении:
<%= form_for(@city) do |f| %>
<%= f.error_messages %>
<div class="field">
<%= f.label :name %><br />
<%= f.text_field :name %>
</div>
<div class="actions">
<%= f.submit %>
</div>
<% end %>
Изначально это заставило меня подумать, что это проблема ресурсов / маршрутов, так как она упоминалась с упоминанием 'towns_path' (на самом деле это было ошибкой другого человека, отправляющего сообщения в Stack Overflow ( Ошибка Rails "NoMethodError" - Мое первое приложение ruby ). Однако из того, что я вижу, это не так. Вот как выглядят мои ресурсы в моем файле маршрутов:
resources :states do
resources :cities
end
Я могу заставить его работать, когда они не являются подресурсами, но мне действительно нужно сохранить их как подресурсы для моих будущих планов с приложением. Буду очень признателен за любую помощь, так как я ломаю себе голову над этим больше часов, чем хотел бы признаться ... Спасибо!
(Не уверен, что это вообще имеет значение, но я использую самую последнюю версию Rails 3 beta2).