【问题标题】:How do I run a Ruby on Rails app?如何运行 Ruby on Rails 应用程序?
【发布时间】:2014-03-21 10:31:44
【问题描述】:

忘记任何形式的服务器配置(例如启用站点 / Apache / nginx)。想象一下,我的所有文件都可以在 Web 服务器中公开访问。

我有这些文件夹可用:

/app/assets

/app/controllers

/app/helpers

/app/mailers

/app/models

/app/observers

/app/uploaders

/app/views

/public/

我没有比这更多的文件夹了。

如果我访问 domain.com/public/htmlpage.html,那么我可以看到 HTML 渲染得很好。如果我访问 domain.com/public/,则会收到“索引文件不存在”消息。

如何运行 Rails 应用程序?我应该在网络浏览器中运行什么文件?

【问题讨论】:

  • 您不能忘记服务器配置。 Rails 必须在服务器上启动,而不是从浏览器启动
  • 我只想在浏览器中本地测试一些东西。你不能这样做吗?
  • 是的。运行“rails s”并在浏览器中访问 localhost:3000。在您的问题中,您正在描述一种行为。试着告诉我们你想做什么以及你厌倦了什么。我们是来帮你的。不要因投反对票而气馁。查看您的问题并进行编辑。
  • 您是否使用rails new applicationname 命令创建了rails 应用程序?因为该命令应该为您提供的不仅仅是您列出的文件夹。要运行rails s,您需要应用程序文件夹中的config.ru 文件以及包含所有应用程序特定配置的config 文件夹。

标签: ruby-on-rails ruby


【解决方案1】:

cd 到你的项目根目录,也就是你的app目录上面的目录,然后运行命令

bundle install

以后

rails s

此命令将在端口 3000 上运行您的 webrick 服务器,因为您在 localhost 上运行您的应用程序,您可以使用此 URL 在浏览器中检查您的应用程序

http://localhost:3000/

您可以附加您在公共目录中的任何文件的名称以作为运行方式

http://localhost:3000/htmlpage.html

【讨论】:

  • 谢谢。这很容易理解,但是我已经这样做了,并且在使用“rails s”后出现“协议错误 - /usr/lib/ruby/vendor_ruby/rails 或 s/vendor/rails”错误。
  • @user2143356 你在使用 RVM
  • 是的。我用 Vagrant/VirtualBox 和 nginx 设置了一个 Ubuntu 12.04 服务器。我使用 RVM 安装 Ruby 1.9.2
  • @user2143356 先运行bundle install 命令,然后在它完成执行时运行rails s
  • 谢谢,但我得到的完全一样,“协议错误 - /usr/lib/ruby/vendor_ruby/rails 或 s/vendor/rails”错误
【解决方案2】:

您只需访问 domain.com,无需公众

编辑:

可以在本地启动它,你可以通过 ssh 进入并运行 rails s。

【讨论】:

  • 那里没有与我的 Ruby 应用程序相关的内容。我的文件结构如上图所示。你是说 domain.com/app/views/something 吗?
  • 不,我的意思是去 domain.com。然后,Rails 将为您的应用程序路由到的任何内容提供服务
  • 那行不通。我想避免服务器配置,因为我有更多问题。哪个文件运行应用程序?
  • 如果您没有服务器配置,那么显然它不会运行
  • 此文档应包含您需要的任何信息。 modrails.com/documentation/Users%20guide%20Nginx.html
【解决方案3】:

Rails 应用程序是动态的 - 它们使用数据库后端和大量 middleware


你应该阅读how to get started with Rails(你会从阅读4.2之后受益):

4.2 说“你好”

Rails 要让 Rails 说“你好”,您至少需要创建一个控制器和一个视图。

控制器的目的是接收特定请求 应用。路由决定哪个控制器接收哪些请求。 通常,到每个控制器的路由不止一条,而且不同 路线可以由不同的动作提供服务。每个动作的目的是 收集信息以提供给视图。

视图的目的是以人类可读的方式显示此信息 格式。一个重要的区别是它是控制器, 而不是收集信息的视图。视图应该只是 显示该信息。默认情况下,视图模板以 由请求转换的称为 ERB(嵌入式 Ruby)的语言 在发送给用户之前在 Rails 中循环。


你需要这个:

#config/routes.rb
root to: "application#index"

#app/controller/application_controller.rb
Class ApplicationController < ActionController::Base
  def index
  end
end

#app/views/application/index.html.erb
Hello World

然后在使用rails s 启动您的网络服务器后转到http://localhost:3000/

【讨论】:

    猜你喜欢
    • 2011-12-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-01
    • 1970-01-01
    • 2010-09-07
    相关资源
    最近更新 更多