开源项目 Turnout 使用教程
1. 项目的目录结构及介绍
turnout/
├── app/
│ ├── controllers/
│ ├── models/
│ ├── views/
│ └── helpers/
├── config/
│ ├── environments/
│ ├── initializers/
│ └── application.rb
├── db/
│ ├── migrate/
│ └── seeds.rb
├── lib/
│ └── tasks/
├── public/
│ ├── images/
│ ├── javascripts/
│ └── stylesheets/
├── test/
│ ├── controllers/
│ ├── models/
│ ├── fixtures/
│ └── test_helper.rb
├── Gemfile
├── Gemfile.lock
├── Rakefile
└── README.md
app/
: 包含应用程序的主要代码,包括控制器、模型、视图和辅助方法。config/
: 包含应用程序的配置文件,包括环境配置和初始化文件。db/
: 包含数据库相关的文件,如迁移文件和种子数据。lib/
: 包含自定义库和任务。public/
: 包含静态文件,如图片、JavaScript 和样式表。test/
: 包含测试相关的文件,如控制器测试、模型测试和测试辅助文件。Gemfile
: 定义项目所需的 gems。Gemfile.lock
: 锁定 gems 的版本。Rakefile
: 定义 Rake 任务。README.md
: 项目说明文档。
2. 项目的启动文件介绍
项目的启动文件主要是 config/application.rb
,它包含了应用程序的基本配置和加载顺序。以下是该文件的主要内容:
require_relative "boot"
require "rails/all"
# Require the gems listed in Gemfile, including any gems
# you've limited to :test, :development, or :production.
Bundler.require(*Rails.groups)
module Turnout
class Application < Rails::Application
# Initialize configuration defaults for originally generated Rails version.
config.load_defaults 6.0
# 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
3. 项目的配置文件介绍
项目的配置文件主要位于 config/
目录下,包括:
config/application.rb
: 应用程序的基本配置。config/environments/
: 包含不同环境的配置文件,如development.rb
,test.rb
, 和production.rb
。config/initializers/
: 包含初始化文件,如assets.rb
,backtrace_silencers.rb
等。
以下是 config/environments/development.rb
的部分内容:
Rails.application.configure do
# Settings specified here will take precedence over those in config/application.rb.
# In the development environment your application's code is reloaded on
# every request. This slows down response time but is perfect for development
# since you don't have to restart the web server when you make code changes.
config.cache_classes = false
# Do not eager load code on boot.
config.eager_load = false
# Show full error reports.
config.consider_all_requests_local = true
# Enable/disable caching. By default caching is disabled.
# Run rails dev:cache to toggle caching.
if Rails.root.join('tmp', 'caching-dev.txt').exist?
config.action_controller.perform_caching = true
config.action_controller.enable_fragment_cache_logging = true
config.cache_store = :memory_store
config.public_file_server.headers = {
'Cache-Control' => "public, max-age=#{2.days.to_i}"
}
else
config.action_controller.perform_caching = false
config.cache_store = :null_store