Ruby on rails Rails 3路由错误

Ruby on rails Rails 3路由错误,ruby-on-rails,ruby-on-rails-3,Ruby On Rails,Ruby On Rails 3,我昨天把它弄坏了,我不知道我怎么把它弄坏了 以下是RESTful控制器的路由: brand_responsibilities GET /brands/:brand_id/responsibilities(.:format) {:action=>"index", :controller=>"responsibilities"} brand_responsibilities POST /brands/:brand_id/responsibiliti

我昨天把它弄坏了,我不知道我怎么把它弄坏了

以下是RESTful控制器的路由:

brand_responsibilities    GET    /brands/:brand_id/responsibilities(.:format)          {:action=>"index", :controller=>"responsibilities"}
brand_responsibilities    POST   /brands/:brand_id/responsibilities(.:format)          {:action=>"create", :controller=>"responsibilities"}
new_brand_responsibility  GET    /brands/:brand_id/responsibilities/new(.:format)      {:action=>"new", :controller=>"responsibilities"}
edit_brand_responsibility GET    /brands/:brand_id/responsibilities/:id/edit(.:format) {:action=>"edit", :controller=>"responsibilities"}
brand_responsibility      GET    /brands/:brand_id/responsibilities/:id(.:format)      {:action=>"show", :controller=>"responsibilities"}
brand_responsibility      PUT    /brands/:brand_id/responsibilities/:id(.:format)      {:action=>"update", :controller=>"responsibilities"}
brand_responsibility      DELETE /brands/:brand_id/responsibilities/:id(.:format)      {:action=>"destroy", :controller=>"responsibilities"}
我的表单如下所示:

<%= form_for :responsibility, :remote => true do |f| %>
    <%= f.hidden_field :access_request_id, :value => ar.id %>
    <%= f.hidden_field :user_id, :value => user.id %>
    <%= f.hidden_field :brand_id, :value => @brand.id %>
    <%= f.submit %>
<% end %>
这条路线对我来说真的很匹配!我错过了什么

更新:我还在控制台中尝试了以下操作:

rs.recognize_path '/brands/30/responsibilities', :method => :post
答复是:

=> {:controller=>"responsibilities", :brand_id=>"30", :action=>"create"}
我的交易是什么

更新#2:

我找到了原因,虽然我不知道为什么。我还有一个领域:

<%= button_to "Deny", brand_responsibilities_path(@brand, :ar => ar), :remote => true, :method => :delete %>
ar),:remote=>true,:method=>:delete%>
我在表格中包括的。为了简洁起见,我以前把它漏掉了,因为我觉得它不重要。我看那是个坏主意


有人知道为什么表单中出现这一行会导致奇怪的路由错误吗?

看起来我好像是个白痴

忽略这一关键信息是个坏主意。在表单中有一个按钮是不可以的,它会在表单中创建一个表单


新手犯的错误。可惜我已经这么做很长时间了。向评论者致意,很抱歉浪费了你宝贵的时间。

看来我是个白痴

忽略这一关键信息是个坏主意。在表单中有一个按钮是不可以的,它会在表单中创建一个表单


新手犯的错误。可惜我已经这么做很长时间了。向评论者致意,抱歉浪费了您宝贵的时间。

奇怪!有了你提供的信息,它应该会起作用。将路由添加到
config/routes.rb
后是否重新启动了服务器?这可能对您的问题没有帮助,但很高兴知道。。。您可以避免隐藏字段传递品牌id。这也将在表单中生成/brands/:id/responsibility操作。除此之外,对您的问题的唯一解释是,有一个优先级更高的路由(在路由列表中处于较低位置)覆盖了您粘贴的路由。是的,我已经重新启动了所有路由。我将表单重新配置为您的示例Jen,我在Rails 3屏幕广播中的Bates控制器中也看到了这一点。还是一样。我的路线是:资源:品牌做资源:责任结束在路线的上面或下面没有通用的东西!rs.recognize_path'/brands/30/responsibilities',:method=>:post=>{:controller=>“responsibilities”,:brand_id=>“30”,:action=>“create”}奇怪!有了你提供的信息,它应该会起作用。将路由添加到
config/routes.rb
后是否重新启动了服务器?这可能对您的问题没有帮助,但很高兴知道。。。您可以避免隐藏字段传递品牌id。这也将在表单中生成/brands/:id/responsibility操作。除此之外,对您的问题的唯一解释是,有一个优先级更高的路由(在路由列表中处于较低位置)覆盖了您粘贴的路由。是的,我已经重新启动了所有路由。我将表单重新配置为您的示例Jen,我在Rails 3屏幕广播中的Bates控制器中也看到了这一点。还是一样。我的路线是:资源:品牌做资源:责任结束在路线的上面或下面没有通用的东西!rs.recognize_path'/brands/30/responsibilities',:method=>:post=>{:controller=>“responsibilities”,:brand_id=>“30”,:action=>“create”}
<%= button_to "Deny", brand_responsibilities_path(@brand, :ar => ar), :remote => true, :method => :delete %>