13

长期 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 可能打算作为普通用户运行吗?不过,如果是这样的话,这似乎不会让我走这么远。

4

2 回答 2

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 脚手架用户名:字符串电子邮件:字符串

耙分贝:迁移

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

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

http://grab.by/dg74

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

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

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

希望这可以帮助!

于 2012-04-24T06:45:17.640 回答
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)的所有一再协助和确认我的方法应该是正确的,我提交这个答案并将这个答案标记为正确,以防其他人遇到同样的问题。

于 2012-04-26T07:25:15.640 回答