【发布时间】:2012-04-24 06:16:03
【问题描述】:
长期 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
我了解到这是因为没有为我的通用控制器定义“索引”,所以我编辑了“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”的谷歌搜索变体模板”和上面类似的浏览器输出。
许多 Google 搜索结果包含建议的 sn-ps,但没有明确的指导说明要使用所述建议编辑哪些文件,或者重复我上面已经采取的步骤。
如果有人能建议我缺少什么,我将不胜感激。
PS:我以超级用户身份运行,对此处引用的所有文件拥有“root:root”所有权。 rails 可能打算作为普通用户运行吗?不过,如果是这样的话,似乎不会让我走这么远。
【问题讨论】:
-
我不知道您的问题的答案,但如果我可以推荐,请查看ruby.railstutorial.org。毫无疑问,它是网络上最好的 Rails 教程。它还有一个很棒的“你好世界”之类的教程。
标签: ruby-on-rails ruby ruby-on-rails-3 ruby-on-rails-3.2