Ruby on Rails:Hello World

时间:2012-04-24 06:16:03

标签: ruby-on-rails ruby ruby-on-rails-3 ruby-on-rails-3.2

长期Java开发,第一次使用Ruby开发。试图到达'#hello world"使用Rails应用程序,并遇到困难。

我很肯定我在这里遗漏了一些基本的东西。话虽这么说,没有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

我了解到这是因为"索引"没有为我的公共控制器定义,所以我已经编辑了#app; app / controllers / common_controller.rb"包含以下内容:

class CommonController < ApplicationController

  def index
  end

end

我现在在&#34; http:// localhost:3000 / common&#34;在我的浏览器中:

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"

我在root看到同样的事情,这是有道理的。

从我发现的情况来看,这显然是由于我的控制器中没有任何渲染,所以我认为应该在&#34; app / views / common / index.html上检查一下。 ERB&#34; - 但是,我确实有一个文件,包含以下内容:

<h1>Hello World</h1>

我也尝试过重命名&#34; index.html.erb&#34; to&#34; _index.html.erb&#34;,&#34; index.html&#34;和&#34; index&#34;,所有这些都基于控制台错误的Google搜索变体&#34; ActionView: :缺少模板&#34;和上面类似的浏览器输出。

许多Google搜索结果都包含建议摘要,但没有明确指导哪些文件可以使用上述建议进行编辑,或者重复我已经采取过的步骤。

如果有人可以告诉我失踪的东西,我会很感激。

PS:我作为超级用户运行,使用&#34; root:root&#34;此处引用的所有文件的所有权。可能会以常规用户身份运行?但是,如果是这样的话,似乎不会让我走得这么远。

2 个答案:

答案 0 :(得分:10)

这很奇怪。我只是重复你的步骤并使其工作(使用rails 3.2.3和ruby 1.9.3-p0),当访问localhost:3000 / common时,我得到了“Hello World”。

http://grab.by/dg6Y

以下是我要快速尝试的内容,以确保您的设置不会出现问题:

1)cd在你的rails项目目录中

2)发出这些终端命令

  

rails g scaffold用户名:string email:string

     

rake db:migrate

3)访问此网址 http://localhost:3000/users

如果你的导轨设置正确,你应该看到这个

http://grab.by/dg74

如果这些步骤不起作用,那么您的设置似乎会发生一些奇怪的事情。

另外,请务必从您的应用中删除public/index.html文件。如果您不删除它,您将无法看到您在路径文件中指定的自定义根页。

如果以上不起作用,可能是您的Ruby版本有问题吗?

希望这有帮助!

答案 1 :(得分:10)

哇。我实际上只是偶然发现了根本问题:

我在名称中包含括号的文件夹中创建了我的项目 - 也就是说,我在“/ 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所有的反复帮助和确认,我的方法应该是正确的,我提交这个答案并将此标记为正确,以防其他人遇到同样的问题