ActiveRecordExtended 项目教程
1. 项目的目录结构及介绍
ActiveRecordExtended 项目的目录结构如下:
ActiveRecordExtended/
├── app/
│ └── models/
├── config/
│ ├── application.rb
│ ├── database.yml
│ └── environments/
├── db/
│ ├── migrate/
│ └── seeds.rb
├── lib/
│ └── active_record_extended/
├── spec/
│ ├── factories/
│ ├── models/
│ └── spec_helper.rb
├── Gemfile
├── Gemfile.lock
├── README.md
└── Rakefile
目录结构介绍
app/
:包含应用程序的主要代码,如模型、视图和控制器。config/
:包含应用程序的配置文件,如application.rb
和database.yml
。db/
:包含数据库相关的文件,如迁移文件和种子数据。lib/
:包含扩展库和自定义模块。spec/
:包含测试代码。Gemfile
和Gemfile.lock
:定义项目的依赖关系。README.md
:项目说明文档。Rakefile
:定义 Rake 任务。
2. 项目的启动文件介绍
config/application.rb
config/application.rb
是 Rails 应用程序的主要配置文件,包含了应用程序的基本设置和加载路径。
require_relative "boot"
require "rails"
# Pick the frameworks you want:
require "active_model/railtie"
require "active_job/railtie"
require "active_record/railtie"
require "active_storage/engine"
require "action_controller/railtie"
require "action_mailer/railtie"
require "action_mailbox/engine"
require "action_text/engine"
require "action_view/railtie"
require "action_cable/engine"
# require "rails/test_unit/railtie"
# Require the gems listed in Gemfile, including any gems
# you've limited to :test, :development, or :production.
Bundler.require(*Rails.groups)
module MyApp
class Application < Rails::Application
# Initialize configuration defaults for originally generated Rails version.
config.load_defaults 6.1
# Configuration for the application, engines, and railties goes here.
#
# These settings can be overridden in specific environments using the files
# in config/environments, which are processed later.
#
# config.time_zone = "Central Time (US & Canada)"
# config.eager_load_paths << Rails.root.join("extras")
end
end
config/boot.rb
config/boot.rb
负责设置 Bundler 和加载项目依赖。
ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../Gemfile', __dir__)
require 'bundler/setup' # Set up gems listed in the Gemfile.
require 'bootsnap/setup' # Speed up boot time by caching expensive operations.
3. 项目的配置文件介绍
config/database.yml
config/database.yml
是 Rails 应用程序的数据库配置文件,定义了不同环境下的数据库连接信息。
default: &default
adapter: postgresql
encoding: unicode
pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
development:
<<: *default
database: my_app_development
test:
<<: *default
database: my_app_test
production:
<<: *default
url: <%= ENV['DATABASE_URL'] %>
Gemfile
Gemfile
定义了项目的依赖关系。
source 'https://rubygems.org'
gem 'rails', '~> 6.1.0'
gem 'pg', '~> 1.1'
gem 'active_record_extended'
group :development, :test do
gem 'byebug'
end
group :test do
gem 'rspec-rails'
gem 'factory_