[英]Ruby on Rails: Hello World
长期Java开发,第一次使用Ruby开发。 尝试使用Rails应用程序达到“hello world”步骤,并且遇到困难。
我很肯定我在这里缺少一些基本的东西。 话虽这么说,StackOverflow的“有类似头衔的问题”和谷歌的“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”所有权。 可能会以常规用户身份运行? 但是,如果是这样的话,似乎不会让我这么做。
真奇怪。 我只是重复你的步骤并使其工作(使用rails 3.2.3和ruby 1.9.3-p0),当访问localhost:3000 / common时,我得到了“Hello World”。
这是我想快速尝试的,以确保它不是您的设置问题:
1)cd在rails项目目录中
2)发出这些终端命令
rails g scaffold用户名:string email:string
rake db:migrate
3)访问此URL http:// localhost:3000 / users
如果您的导轨设置正确,您应该看到这一点
如果这些步骤不起作用,那么您的设置似乎会发生一些奇怪的事情。
此外,请务必从您的应用中删除public/index.html
文件。 如果不删除它,您将无法看到在路径文件中指定的自定义根页面。
如果上面不起作用,可能是您的Ruby版本有问题?
希望这可以帮助!
哇。 我实际上只是偶然发现了实际的根问题:
我在一个文件夹中创建了我的项目,该文件夹中有一个括号 - 也就是说,我在“/ coding / workspace / [My] Toolbag”中运行“rails new web”。
今晚我碰巧在“/ coding / workspace”中再次尝试,它终于奏效了。 然后,我在以下位置测试了“rails new web”,以充实我的怀疑:
/coding/workspace/test1
/coding/workspace/test 2
/coding/workspace/test [3]
/coding/workspace/test [4
/coding/workspace/test ]5
/coding/workspace/test [6/subfolder
怀疑证实。 文件夹3,4,6中的Rails项目演示了我在这个问题中描述的问题,而文件夹1,2,5中的rails项目工作得很好。
具体来说,问题是路径中任何地方的开放式括号:“[”
我正在使用Linux Mint。 虽然我还没有尝试在其他发行版,Windows或Mac上进行重新编写,但问题可能更广泛地适用。
非常感谢Brett Sanders的所有反复帮助和确认,我的方法应该是正确的,我提交这个答案并将此标记为正确,以防其他人遇到同样的问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.