我很乐意,我在这里遗漏了一些基本的东西.话虽如此,StackOverflow的“相似标题的问题”和Google的“ruby rails hello world”命中(或其变体)都没有澄清我所缺少的东西.
我已经通过RVM安装了ruby(v1.9.3p194),gem(1.8.23)和rails(3.2.3).我生成了一个控制器:
rails generate controller common
在默认的“config / routes.rb”中,我有以下两个路由尝试:
Web::Application.routes.draw do root :to => "common#index" match ':controller(/:action(/:id))(.:format)' end
当我最初在浏览器中运行“rails server”并加载了“http:// localhost:3000 / common”时,看到如下:
Unknown action The action 'index' could not be found for CommonController
我知道这是因为“index”没有为我的公共控制器定义,所以我编辑了“app / controllers / common_controller.rb”来包含以下内容:
class CommonController < ApplicationController def index end end
我现在在浏览器中的“http:// localhost:3000 / common”中看到以下内容:
Template is missing Missing template common/index,application/index with {:locale=>[:en],:formats=>[:html],:handlers=>[:erb,:builder,:coffee]}. Searched in: * "/coding/workspace/[My] Toolbag/web/app/views"
我看到同样的东西在根,这是有道理的.
从我发现的,这显然是由于在我的控制器中没有任何渲染,所以我相信它应该是检查“app / views / common / index.html.erb”的内容 – 但是,我做有一个文件,包含以下内容:
<h1>Hello World</h1>
我还尝试将“index.html.erb”重命名为“_index.html.erb”,“index.html”和“index”,这些都是基于控制台错误“ActionView :: Missing Template”的Googling变体,以及上面类似的浏览器输出.
许多Google结果包含建议的摘要,但没有明确的指导,可以使用上述建议编辑哪些文件,或者重复上述已经采取的步骤.
如果任何人可以建议我失踪,我会很感激.
PS:我以超级用户身份运行,对此引用的所有文件的“root:root”所有权.可能导轨是作为一般用户运行的?不过如果是这样的话,似乎不会让我感觉到这么远.
解决方法
这是我会尽快尝试,以确保它不是您的设置的问题:
1)cd里面的rails项目目录
2)发出这些终端命令
rails g scaffold user name:string email:string
rake db:migrate
3)访问此网址
http://localhost:3000/users
如果您的导轨设置正确,您应该看到这一点
如果这些步骤不起作用,那么您的设置似乎有些奇怪的事情.
此外,请务必从您的应用程序中删除public / index.html文件.如果您不删除它,您将无法看到您的路由文件中指定的自定义根页面.
如果以上方法不起作用,那么Ruby版本可能是一个问题?
希望这可以帮助!