长期 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
我了解到这是因为没有为我的通用控制器定义“索引”,所以我编辑了“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”的谷歌搜索变体和上面类似的浏览器输出。
许多 Google 结果都包含建议片段,但没有明确的指导来说明使用所述建议编辑哪些文件,或者重复我上面已经采取的步骤。
如果有人可以建议我缺少什么,我将不胜感激。
PS:我以超级用户身份运行,此处引用的所有文件都拥有“root:root”所有权。rails 可能打算作为普通用户运行吗?不过,如果是这样的话,这似乎不会让我走这么远。