跳至内容 跳至搜索

Railties – 将Engine粘合到 Rails

Railties 负责将所有框架粘合在一起。总体而言,它

  • 处理 Rails 应用程序的引导过程;

  • 管理rails命令行界面;

  • 并提供 Rails 生成器的核心。

下载

可以使用 RubyGems 安装最新版本的 Railties

  • gem install railties

源代码可以作为 GitHub 上 Rails 项目的一部分下载

许可证

Railties 根据 MIT 许可证发布

支持

API文档位于

可以在这里为 Ruby on Rails 项目提交错误报告

应该在此处讨论 rails-core 邮件列表中的功能请求

命名空间
方法
A
B
C
E
G
P
R
V

属性

[RW] 应用程序类
[W] 应用程序
[RW] 缓存
[RW] 记录器

类公共方法

应用程序()

# File railties/lib/rails.rb, line 43
def application
  @application ||= (app_class.instance if app_class)
end

自动加载器()

# File railties/lib/rails.rb, line 123
def autoloaders
  application.autoloaders
end

回溯清理器()

# File railties/lib/rails.rb, line 54
def backtrace_cleaner
  @backtrace_cleaner ||= Rails::BacktraceCleaner.new
end

配置()

用于配置 Rails 环境的 Configuration 实例

# File railties/lib/rails.rb, line 50
def configuration
  application.config
end

环境()

返回当前 Rails 环境。

Rails.env # => "development"
Rails.env.development? # => true
Rails.env.production? # => false
# File railties/lib/rails.rb, line 72
def env
  @_env ||= ActiveSupport::EnvironmentInquirer.new(ENV["RAILS_ENV"].presence || ENV["RACK_ENV"].presence || "development")
end

环境=(环境)

设置 Rails 环境。

Rails.env = "staging" # => "staging"
# File railties/lib/rails.rb, line 79
def env=(environment)
  @_env = ActiveSupport::EnvironmentInquirer.new(environment)
end

错误()

返回当前 Rails 项目的 ActiveSupport::ErrorReporter,否则如果没有项目,则返回 nil

Rails.error.handle(IOError) do
  # ...
end
Rails.error.report(error)
# File railties/lib/rails.rb, line 90
def error
  ActiveSupport.error_reporter
end

gem 版本()

Gem::Version 的形式返回当前加载的 Rails 版本。

# File railties/lib/rails/gem_version.rb, line 5
def self.gem_version
  Gem::Version.new VERSION::STRING
end

(*组)

根据以下内容返回所有要加载的 Rails 组

  • Rails 环境;

  • 环境变量 RAILS_GROUPS;

  • 作为参数给出的可选 envs 和具有组依赖项的哈希;

Rails.groups assets: [:development, :test]
# => [:default, "development", :assets] for Rails.env == "development"
# => [:default, "production"]           for Rails.env == "production"
# File railties/lib/rails.rb, line 103
def groups(*groups)
  hash = groups.extract_options!
  env = Rails.env
  groups.unshift(:default, env)
  groups.concat ENV["RAILS_GROUPS"].to_s.split(",")
  groups.concat hash.map { |k, v| k if v.map(&:to_s).include?(env) }
  groups.compact!
  groups.uniq!
  groups
end

public_path()

返回当前 Rails 项目的公共文件夹的 Pathname 对象,否则如果没有项目则返回 nil

Rails.public_path
  # => #<Pathname:/Users/someuser/some/path/project/public>
# File railties/lib/rails.rb, line 119
def public_path
  application && Pathname.new(application.paths["public"].first)
end

root()

返回当前 Rails 项目的 Pathname 对象,否则如果没有项目则返回 nil

Rails.root
  # => #<Pathname:/Users/someuser/some/path/project>
# File railties/lib/rails.rb, line 63
def root
  application && application.config.root
end

version()

返回当前加载的 Rails 版本作为字符串。

# File railties/lib/rails/version.rb, line 7
def self.version
  VERSION::STRING
end