使用此命令生成Pages Controller后 -
>rails g controller Pages Home About Contact
并取消评论match ':controller(/:action(/:id))(.:format)'
档案中的routes.rb
行。
当我访问我的网址时 -
http://localhost:3000/pages/home
抛出错误
未知行动
找不到PagesController
的操作'home'
然而,如果按照这样的方式访问,这是有效的 -
http://localhost:3000/pages/Home
小/ Up案例是我的第一个想法,所以我按照建议安装了route_downcaser
HERE
现在问题是这两个网址都抛出相同的错误 -
http://localhost:3000/pages/home
http://localhost:3000/pages/Home
错误
未知行动
找不到PagesController
的操作'home'
让我知道如何解决此错误。
我在Github的项目 - Github URL
使用Windows 7
Rails版本 - 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
答案 0 :(得分:3)
在ruby中,您不想使用upcased方法名称。以大写字母开头的名称保留给常量(类/模块)。
除此之外,如果你使用的是一个宝石,它会降低从Home到home的路线,并且该方法被命名为Home,那么这就是失败的原因。确保方法名称是低级的。
如果有人要指出这一点,我会抢先一步。 CapsCase方法名称在ruby中有效,它们不是常规的,可能会令人困惑。因此被认为是BadIdea。关于CapsCase名称唯一真正特别的事情是当它们被赋值时,如果你再次尝试分配它,ruby会引发警告。