我是一個新手Rails開發誰獲得試圖訪問我的CityController「新」動作時出現以下錯誤:Rails的「NoMethodError」與子資源
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>
當我運行「耙:路線」它說,這是一個合法的途徑......
更多背景,這裏是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 %>
這最初讓我覺得這是一個資源/路由問題,因爲它提到了'cities_path'(事實上,這是另一個發佈到Stack Overflow的人錯了(Rails error "NoMethodError" - My first ruby app)。然而,從我所能看到的情況來看,情況並非如此。這裏是我的資源,如何看待我的路線文件:
resources :states do
resources :cities
end
我能得到它的工作時,他們沒有子資源,但我真的需要他們保持作爲子資源爲我的未來與應用程序的計劃。任何幫助將非常感激,因爲我一直在這個絞盡腦汁想了更多的時間比我不願意承認...謝謝! (不確定這個問題,但我運行的是最新版本的Rails 3 beta2)。
謝謝!我回去做了「正確的方式」(正如你所建議的那樣),而且它不需要兩次定義資源就可以工作。 – Tchock 2010-05-16 01:53:06