我正在使用contact_us gem 0.5.4版
我的 routes.rb 文件中有以下代码
resources :contacts, controller: 'contact_us', only: [:new, :create] do
root :to => 'contact_us#new'
end
据我了解,上述路线contacts
仅支持:new
和:create
操作,并且使用指定的控制器controller: 'contact_us'
也可以使用 root/
重定向到#new
操作,但是当我在浏览器中点击http://localhost:3000/contact-us时,它会说
未知操作
找不到 ContactUsController 的操作“索引”
我已将 rails 版本从 3.2.19 升级到 4.0.13,将 ruby 升级到 2.0.0p481
旧代码在 rails 3.2.19 和 ruby 1.8.7 上运行良好
resources :contacts,
:controller => 'contact_us',
:only => [:new, :create]
match 'contact_us' => 'contact_us#new'
如果我只在上面的代码中进行更改match
,get
则会引发此错误
/home/vagrant/.rvm/gems/ruby-2.0.0-p481/gems/actionpack-4.0.13/lib/action_dispatch/routing/route_set.rb:430:in `add_route':路由名称无效,已在使用中:'contact_us'(参数错误)
您可能已经使用该
:as
选项定义了两个具有相同名称的路由,或者您可能正在覆盖已由具有相同名称的资源定义的路由。对于后者,您可以限制使用创建的路由,resources
如下所述: