Ruby on rails Rails应用程序&x27;生命周期
我试图了解rails应用程序的生命周期。应用程序_controller.rb何时运行?是每次更改一次,还是每次请求一次 我想知道关于以下文件的相同信息:Ruby on rails Rails应用程序&x27;生命周期,ruby-on-rails,ruby,Ruby On Rails,Ruby,我试图了解rails应用程序的生命周期。应用程序_controller.rb何时运行?是每次更改一次,还是每次请求一次 我想知道关于以下文件的相同信息: config/environments/*.rb(开发、生产或测试,取决于当前模式) boot.rb 环境.rb routes.rb 我问这个问题的原因之一是,我想知道哪里是一个好地方 初始化代码 自定义配置数据 编辑: @Gdeglin的答案很好,但我实际上很想知道这些文件何时运行。application\u controller.r
- config/environments/*.rb(开发、生产或测试,取决于当前模式)
- boot.rb
- 环境.rb
- routes.rb
- 初始化代码
- 自定义配置数据
map.connect '*path', :controller => 'home', :action => 'on_404'
它也是实现应用程序的一个重要部分
在何处放置初始化和配置代码
初始化代码和自定义配置数据都应放在environment.rb中(请阅读此文件中的注释)。如果希望某些代码在初始化期间仅在开发中运行或仅在生产中运行,请将其分别放在config/environments/development.rb或config/environments/production.rb中
编辑:
有关在初始化过程中何时运行这些文件的详细概述,请参见:
基本上,这些步骤是:
RAILS\u ROOT
常量,并将RAILS库和应用程序代码添加到LOAD\u路径
Rails::Initializer.run
初始化后
和准备后
如果创建了任何通常的做法是将初始化内容放在config/initializers/目录中。这样,您就可以保持environment.rb文件干净(er)
瑞安·戴格尔(Ryan Daigle)所著。只要稍加努力,你就可以自己完成,这可能会更有用 从“ruby脚本/服务器”开始。在我的(2.1)应用程序中,在“script”目录中查找名为“server”的文件。其中包括:
#!/usr/bin/env ruby
require File.dirname(__FILE__) + '/../config/boot'
require 'commands/server'
所以它需要boot.rb,它定义了很多东西,然后调用Rails.boot
或多或少运行您定义的任何预初始化,然后需要环境
,它执行另一个级别的引导。到那个时候,事情开始变得复杂起来:我推荐一张大纸
等等
或者,您可以在中需要文件时通过黑客Kernel#require
登录-我自己还没有尝试过(该方法可能会在其他地方被重写),但它可以工作
应用程序\u控制器根本不是“运行”的-它是其他控制器的父类,因此当加载继承控制器时,其内容(如果需要且未被重写)将变为可用。您通常会使用它来提供所有控制器的通用功能。下面是我通过在代码中放入一组print语句观察到的情况: 应用程序控制器和posts控制器(例如)在每个请求上都“运行”。方法def/end之外的每一行代码都在两个控制器中执行,然后代码流传递到请求的/路由的方法 因为这不是我所期望的,所以我认为发布它是值得的。如果我错了,请随意编辑
对于Heroku,出于某种原因,只有当print语句位于方法内部时,print语句输出才会显示在标准输出日志中。但我相信上述描述仍然适用。Neat。我不知道。谢谢更具体地说,这些文件何时运行?这是我感兴趣学习的应用程序生命周期。这也有助于这是一个非常有用的主题和很好的答案。然而,找到更多细节的链接已经不存在了。另外,如果Rails3中有任何变化,我希望有人能给出新的答案。谢谢我正在搜索Rails应用程序中最长寿的对象,它能够承载我的持久套接字连接器(一个客户端套接字,它将与其他web服务建立持久保持活动的连接)。这样一个目标的最佳候选对象是什么<代码>类应用程序
Application.rb
?@alfredd的链接不再工作。导致页面继续