【问题标题】:Blank page when navigating to http://localhost:3000/say/hello导航到 http://localhost:3000/say/hello 时出现空白页
【发布时间】:2011-07-21 13:53:22
【问题描述】:

我是 Ruby on Rails 的新手,正在做我的第一个教程,并且正在运行最新版本的 rails 3 和 ruby​​ 1.9.2。创建我的控制器并导航到http://localhost:3000/say/hello 后,我收到一个空白页。当我转到http://localhost:3000 时,我确实看到了欢迎使用 Rails 消息。我做了一些谷歌搜索,人们也有类似的问题,但没有明确的解决方法。我以前从未真正使用过 MVC,所以路由的概念对我来说相当新。

下面是我的控制器:

class SayController < ApplicationController
  def hello
  end
  def goodbye
  end
end

我的看法:

<h1>Say hello to Rails!</h1>

【问题讨论】:

  • 你设置路由到say控制器了吗?

标签: ruby-on-rails


【解决方案1】:

您应该删除 public/index.html 文件,因为默认情况下这会干扰您的路由和显示。您是否已经设置了路线,模板的确切位置和文件名是什么?

您需要在您的 config/routes.rb 文件中使用类似的东西来将该 url 正确路由到您的模板/视图:

match '/say/hello' => 'say#hello'

【讨论】:

  • 好的,我删除了 public/index.html 文件,这让我更接近了一点。我的 config/routes.rb 文件如下所示。我必须设置路线吗?我以为这已经为我完成了,我的教程还不清楚。
  • 很抱歉,我没有看到任何路由文件,您可能忘记包含它了吗? :-)
【解决方案2】:

首先从您的公共文件夹中删除 index.html 文件。然后,转到 app/views 并检查 say 控制器的视图。你应该有一个 hello.html.erb。

【讨论】:

    【解决方案3】:

    Bitterzoet 已经回答了您的特定问题,但我认为您可能需要一些替代学习资源。

    我不确定您从哪个教程开始,但我觉得奇怪的是他们没有使用 RESTful 路由。您可以通过转到控制台并输入“rake routes”来找出您目前设置的路线。如果您想要不同的教程,我推荐这里的教程: http://www.wiki.devchix.com/index.php?title=Rails_3_Curriculum

    我还推荐 http://railsforzombies.org/ 作为第一次使用 Rails 的良好体验。

    【讨论】:

      【解决方案4】:

      添加到 config/routes 的一条有趣的通用行是:

      match ':controller(/:action(/:id(.:format)))'
      

      在开发过程中,这将允许您在地址栏中显示所有控制器/动作/id.format 等的控制器/动作。

      就像 Bitterzote 写的,如果控制器是“说”并且动作是“你好”,http://localhost:3000/say/hello。 如果您使用控制器“说”和动作“移动”,http://localhost:3000/say/move

      我发现这条路线在开发过程中非常有用,但如果您启动应用程序,请更改此路线! (Rails 警告:“注意:此路由将使每个控制器中的所有操作都可以通过 GET 请求访问。”)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-10-28
        • 2014-05-20
        • 1970-01-01
        • 1970-01-01
        • 2022-06-22
        • 1970-01-01
        相关资源
        最近更新 更多