0

我为我的 ruby​​ on rails 应用程序遵循了这个电子邮件表单教程,该应用程序托管在 heroku 上。每次我打开 localhost:3000/contact 时,我都会收到以下错误:

没有路线匹配 {:action=>"home", :controller=>"contact"}

这是我的 routes.rb 文件中的内容:

Inspired::Application.routes.draw do
  get "pages/home"
  get "pages/about_us"
  get "pages/web_design"
  get "pages/portfolio"
  get "pages/contact"

  match 'contact' => 'contact#new',    :as => 'contact', :via => :get
  match 'contact' => 'contact#create', :as => 'contact', :via => :post

  root :to => 'pages#home'
end

我不确定我要去哪里错了。为什么动作应该回到新的或创建的地方?谢谢!

4

1 回答 1

0

看起来您不小心将两条路线命名为contact_path(:as 命名路线),并且覆盖了 :get 一条。如果您更改第二个 URL 的名称,它应该可以工作:

match 'contact' => 'contact#new',    :as => 'contact', :via => :get
match 'contact' => 'contact#create', :as => 'make_contact', :via => :post

或者可能将其更改为 RESTful 资源?

resources :contact_messages
于 2012-11-03T00:53:47.023 回答