什么文件在 ruby​​ 服务器上运行所有内容?

Posted

技术标签:

【中文标题】什么文件在 ruby​​ 服务器上运行所有内容?【英文标题】:What file runs everything on the ruby server? 【发布时间】:2019-07-24 16:02:49 【问题描述】:

我是 rails 和 ruby​​ 的新手,我想使用 rails 后端制作一个小型 Web 应用程序(考虑到我对这两者都不熟悉,这不是一个好主意)。我试图概念化rails的文件夹结构,我很困惑是否有一个文件可以运行文件夹中的所有内容..或者它是如何工作的?我使用过 node.js 和 django (python),通常我会有一个服务器文件来导入我的数据库等,但是有了这个 rails 设置——我有点不知所措。任何帮助都会很棒!

【问题讨论】:

你指的是main()吗?或者,如果您的意思是“导入文件夹中的所有 ruby​​ 文件”,请查看SO 哦还有一件事,require 不会运行两次加载 ruby​​ 文件。如果您想要线性加载代码而不是可以多次加载,请使用load @Jay-ArPolidario 是的,就像某种 main()。还是我做一个? 查看塞尔吉奥的回答。另外,只是为了补充他的答案,如果您在 rails 项目文件夹中执行cat bin/rails,您将看到“代码执行的起点”,然后从这里开始,只需按照“必需”的代码/文件进行操作,如果你真的想从一开始就线性地知道什么会被执行,尽管你可能不需要很早就知道这一点,因为你还在学习。 【参考方案1】:

在您的 rails 应用程序中,没有一个文件需要并运行所有其他文件。有几个文件可以执行类似的操作,但它们不会加载所有内容

相反,rails 知道在启动您的应用程序时到哪里查找信息。您的数据库配置转到config/database.yml。启动时设置转到config/initializers/。等等。作为 Rails 开发人员,您应该知道这一点。他们称之为约定优于配置。

一本好的 Rails 书可以帮助学习这些约定(什么去哪里)。

【讨论】:

我明白这一点,也许我应该更好地问这个问题。例如,如果我使用 mongoDB 驱动程序,则不会有 database.yml。实例您将创建一个对象以连接到数据库。使用这个例子,我会在哪里运行这个 db 文件?我的 app 文件夹如何知道运行此文件? @import_theUser:如果您想使用原始驱动程序,那么您应该将该对象初始化放入初始化程序或环境文件(config/development.rb、config/production.rb)中。但是对于 Rails 应用程序,最好使用 Mongoid,它不使用 database.yml,但它以完全相同的方式使用 mongoid.yml

以上是关于什么文件在 ruby​​ 服务器上运行所有内容?的主要内容,如果未能解决你的问题,请参考以下文章

Ruby on Rails:“无法加载此类文件”事件机器

检测 ruby​​ 是不是在 Windows 上运行的正确方法是啥?

在同一个 Apache 服务器上运行 PHP 和 Ruby 有啥问题吗?

让 Ruby 服务在 Elastic Beanstalk 上运行

bind 0.0.0.0的作用是什么呢?

iOS 定时后台处理