Ruby on rails 3 在rails 3中使用部分表单时出现路由错误
有人知道如何使用部分表单来创建和更新有关对象的数据吗?我的更新方法似乎有效,但无法创建新对象。每次我点击“添加新广告”时,我都会收到以下错误:[ActionController:Routing error in Classified#new No route matches{:controller=>Classified}]。以下是部分表单的代码:错误指向第一行:Ruby on rails 3 在rails 3中使用部分表单时出现路由错误,ruby-on-rails-3,Ruby On Rails 3,有人知道如何使用部分表单来创建和更新有关对象的数据吗?我的更新方法似乎有效,但无法创建新对象。每次我点击“添加新广告”时,我都会收到以下错误:[ActionController:Routing error in Classified#new No route matches{:controller=>Classified}]。以下是部分表单的代码:错误指向第一行: <%= form_for(@classified) do |f| %> <p> <%= f
<%= form_for(@classified) do |f| %>
<p>
<%= f.label :title %><br/>
<%= f.text_field :title %>
</p>
<p>
<%= f.label :price %><br/>
<%= f.text_field :price %>
</p>
<p>
<%= f.label :location %><br/>
<%= f.text_field :location %>
</p>
<%= f.label :description %><br/>
<%= f.text_area :description %>
<%= f.label :email %><br/>
<%= f.text_field :email %>
<%= f.submit %>
<% end %>
<%= link_to 'Back', {:action => 'list'} %>
以下是“def create”方法:
def create
@classified = Classified.new(params[:classified])
if @classified.save
redirect_to :action => 'list'
else
render :action => 'new'
end
end
我怀疑问题出在我的config/routes.rb中。我已经有这一行了:
resources :classified
我亦提出:
root :to => "Classified#list"
root :to => "Classified#new"
root :to => "Classified#show"
root :to => "Classified#edit"
root :to => "Classified#form
问题可能出在routes.rb文件上。它是如何与更新方法而不是新方法一起工作的?请帮忙。我试过所有可能的伎俩,但都无济于事。我会很高兴的。提前感谢我想知道你的
耙路线的结果
,因为你用单数表示你的控制器
它可能是
分类广告
,在您的所有路线上都有S吗?我不太确定,因为资源:分类我猜它来自脚手架,所以应该很好,然后你在最后一行中漏掉了一个“”,但这可能是一个拼写错误。我建议资源使用复数名,因为这是大多数资源的标准:
resources :classifieds
您还需要将控制器名称和类名更改为classifieds\u controller
和ClassifiedsController
此外,您的命名路由应该是小写的(尽管您应该完全去掉这些路由):
摆脱根路由
路由。资源
行将创建您所需的所有路由。并且您在路由.rb中只能有一个根路由,这应该指向您的主页控制器#操作
如果你对表单有一个操作,那么你也不需要它。只需提及这一点,因为你为“分类的”表单创建了一个路由。控制器操作对于partials是不必要的
您的新方法和创建方法以及表单乍一看都不错。请首先尝试重新修改路由,如果仍然存在问题,请从命令行运行rake routes
,并将输出发布到问题中,并就此答案给我留下评论,我将看看是否可以帮助您解决问题
请先阅读以下内容:
在那里有三个小时没有人注意,我们同时编辑并回答了它…:)我在完成这个答案时看到一个新的答案被贴了出来。我想我会点击提交,因为我已经花了一些时间;-)
resources :classifieds
root :to => "classifieds#list"