长期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;此处引用的所有文件的所有权。可能会以常规用户身份运行?但是,如果是这样的话,似乎不会让我走得这么远。
答案 0 :(得分:10)
这很奇怪。我只是重复你的步骤并使其工作(使用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)访问此网址 http://localhost:3000/users
如果你的导轨设置正确,你应该看到这个
如果这些步骤不起作用,那么您的设置似乎会发生一些奇怪的事情。
另外,请务必从您的应用中删除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所有的反复帮助和确认,我的方法应该是正确的,我提交这个答案并将此标记为正确,以防其他人遇到同样的问题