Ruby on rails Rails 4:路由名称无效,已在使用中(ArgumentError)

Ruby on rails Rails 4:路由名称无效,已在使用中(ArgumentError),ruby-on-rails,routes,Ruby On Rails,Routes,这个错误说明了事实,我已经使用了两次路由名称“contact”,但一个匹配是针对get请求的,另一个匹配是针对post。我一直遵循以下教程在Rails中设置联系人表单:,作者建议将以下内容添加到我的routes文件中: match 'contact' => 'contact#new', :as => 'contact', :via => :get match 'contact' => 'contact#create', :as => 'contact', :via

这个错误说明了事实,我已经使用了两次路由名称“contact”,但一个匹配是针对
get
请求的,另一个匹配是针对
post
。我一直遵循以下教程在Rails中设置联系人表单:,作者建议将以下内容添加到我的routes文件中:

match 'contact' => 'contact#new', :as => 'contact', :via => :get
match 'contact' => 'contact#create', :as => 'contact', :via => :post
但是,这给了我以下错误:

Invalid route name, already in use: 'contact'  (ArgumentError)
这是我自己的
routes.rb
文件:

Fls::Application.routes.draw do
  root 'welcome#index'
  match 'contact' => 'contact#new', :via => :get
  match 'contact' => 'contact#create', :as => 'contact', :via => :post
end

执行以下操作,而不是上述操作:

resource :contact, only: [:new, :create]


您使用的rails版本是什么?但是当您
参考资料:照片
例如-完成此操作后,我可以使用helper
photos\u path
方法:post和
photos\u path
方法“get”,并分别点击照片#创建和照片#索引。i、 似乎有两个同名的不同端点。要回答我自己的问题-要使其作为命名路由可用,必须为第一个路由设置as选项。第二个将以相同的名称自动提供。但是根据这个答案,你最好把它放在第二条路线上,而不是第一条路线上——虽然我还没有测试过,但我仍然想知道这是怎么可能的。仅仅把它放在其中一个是行不通的。
get 'contact' => 'contact#new'
post 'contact' => 'contact#create', :as => 'contact'