我是一个新手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