1

使用此命令生成页面控制器后 -

>rails g controller Pages Home About Contact

并取消注释文件中的行match ':controller(/:action(/:id))(.:format)'routes.rb

当我访问我的网址时 -

http://localhost:3000/pages/home

它抛出错误

未知动作

找不到 PagesController 的操作“家”

但是,如果像这样访问,这是可行的 -

http://localhost:3000/pages/Home

Small/Up case 是我的第一个想法,所以我按照这里route_downcaser的建议安装了

现在的问题是两个 URL 都抛出相同的错误 -

http://localhost:3000/pages/home
http://localhost:3000/pages/Home

错误

未知动作

找不到 PagesController 的操作“家”

让我知道如何解决此错误。

我在 Github 的项目 - Github URL

使用Windows 7

导轨版本 -3.2.9

编辑

routes.rb file - 

Addbootstrap::Application.routes.draw do
  get "pages/Home"

  get "pages/About"

  get "pages/Contact"

  get "pages/Drop_Down"

  match ':controller(/:action(/:id))(.:format)'
end
4

1 回答 1

3

在 ruby​​ 中,您不想使用大写的方法名称。以大写字母开头的名称保留给常量(类/模块)。

除此之外,如果你正在使用一个 gem 来降低你从 Home 到 home 的路线,并且该方法被命名为 Home,那么这就是它会失败的原因。确保方法名称是小写的。


如果有人要指出这一点,我会先发制人。CapsCase 方法名称在 ruby​​ 中是有效的,它们只是不常规,并且可能会造成混淆。因此被认为是一个坏主意。CapsCase 名称唯一真正特别的地方是当它们被赋值时,如果你再次尝试赋值,ruby 会发出警告。

于 2013-02-25T06:45:59.300 回答