我是一名长期从事Java开发的程序员,第一次尝试使用Ruby进行开发。我正在尝试使用Rails应用程序完成“Hello World”的步骤,但出现了困难。
我确定我在这里缺少了一些基础知识。话虽如此,无论是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”和上面类似的浏览器输出的变体中搜索到的。
许多谷歌搜索结果包含建议片段,但没有明确指导要编辑哪个文件与所述建议一起使用,否则会重复上面已经执行的步骤。
如果有人能够指导我缺少什么,我会很感激。
PS:我正在以超级用户运行,并拥有所有引用文件的“root:root”所有权。 Rails是否应该作为常规用户运行?虽然情况似乎不是这样,但似乎这样做并不能让我走得更远。