Ruby on Rails网站项目搭建入门指南
时间:2026-08-18 | 作者:半糖攻略君 | 阅读:0在开始一个 Rails 项目之前,很多人会先纠结一个问题:怎么搭建?
其实步骤并不复杂,但国内开发者往往会卡在第一步——网络环境。
下面就把整个流程拆开来讲,希望能帮你少走些弯路。
创建 Rails 项目
创建一个普通的 Rails 项目,直接用以下命令即可:
rails new blog
但在国内连接 RubyGems 的速度往往很慢,容易卡住。
Rails 默认在项目骨架生成后,会用 bundle 从 RubyGems 下载依赖包,因此第一步建议先跳过这一步。
更稳妥的做法是加上 --skip-bundle 参数。
后续再使用 Ruby China 提供的源:https://gems.ruby-china.org/ 安装依赖。
实际操作步骤
- 创建项目并跳过 bundle
rails new blog --skip-bundle
- 修改项目目录里的
Gemfile文件,把第一行source后面引号里的地址换成https://gems.ruby-china.org/。 - 在项目目录下执行
bundle install,完成依赖安装。
到此为止,一个标准的 Rails 项目骨架就搭好了。
配置 Rails 项目
骨架虽然能用,但实际开发中通常还需要按需求调整配置。
比如时区、数据库这些,默认值往往不是我们想要的。
设置时区
Rails 默认使用 UTC 时区。
如果项目只在国内运行,所有时间数据都会比北京时间晚 8 个小时,这显然不合适。
所以除非是国际性项目,否则建议改成国内时区。
打开 config/application.rb,找到 config.time_zone 配置项,去掉注释,把值改成 Beijing,再额外加一行:
config.active_record.default_timezone = :local
这样 Rails 在读写数据库时也会使用本地时间。
使用 MySQL
默认使用的是 SQLite。
如果你要切到 MySQL,先装好 MySQL 的程序包,然后修改数据库配置。
先打开 Gemfile,添加一个全局依赖:
gem 'mysql2'
然后执行 bundle install 把包装上。
接着打开 config/database.yml,把 development 区块改成类似下面的样子:
development: adapter: mysql2 database: blog username: root password: host: 127.0.0.1
密码根据实际情况填写,其他环境(test、production)也类似处理。
创建 Rails 文档
对于老手来说,这一步可能可有可无。
但新手经常会翻手册找方法,网速不好或者离线的时候尤其麻烦。
Rails 提供了在项目里生成本地文档和 API 文档的命令,把资料放到本地会方便很多。
首先需要加一个依赖包:redcarpet。
因为它只在本地开发时使用,所以不用放到全局依赖。
找到 Gemfile 底部的 development 配置块,加进去:
gem 'redcarpet', '~> 3.1.2'
然后执行 bundle install 安装。
接着执行下面两条命令:
rake doc:guides rake doc:rails
文档会自动生成到 doc 目录。
之后直接用本地浏览器打开就能查阅。
在 Rails 中创建自定义命令
开发 Web 应用时,经常需要在终端执行一些脚本来处理特定任务。
比如从一个大文件里导入数据。
Rails 处理这类需求非常轻量,下面举个简单例子。
在 lib/tasks 目录下新建一个 hello.rake 文件,内容如下:
namespace :hello do task :world do puts "Hello, World!" end end
这样就定义了一个打招呼的任务。
运行它只要使用 rake 命令:
rake hello:world
不过默认情况下,这个脚本不能直接访问项目里的模型、数据库等内容。
如果想让脚本调用项目里的模块,也很简单:加上 => :environment 就行。
比如想给所有客户打个招呼:
namespace :hello do
# ...
task :customers => :environment do
for customer in Customer.all
puts sprintf("hello, %s", customer.name)
end
end
end
如果你的项目里正好有 Customer 模型,而且它有 name 字段,那么直接执行 rake hello:customers 就能看到效果。
和第一个任务相比,关键区别就是多了 => :environment。
它负责把整个 Rails 环境加载进来。
是不是很简单?
免责声明:文中图文均来自网络,如有侵权请联系删除,心愿游戏发布此文仅为传递信息,不代表心愿游戏认同其观点或证实其描述。
相关文章
更多-
- 使用RVM切换Ruby与Rails版本的实现方法
- 时间:2026-08-18
-
- Ruby语言是什么及入门使用方法
- 时间:2026-08-18
-
- Ruby插入排序算法实现与二路插入排序代码示例
- 时间:2026-08-18
-
- Ruby图片滤镜算法实现代码与核心原理
- 时间:2026-08-18
-
- Ruby中Hash哈希结构基本操作方法详解
- 时间:2026-08-18
-
- Ruby面向对象编程:类方法与类扩展详解
- 时间:2026-08-18
-
- Ruby正则表达式语法详解与常用示例代码
- 时间:2026-08-18
-
- Ruby二分搜索算法简单实现与查找示例
- 时间:2026-08-18
精选合集
更多大家都在玩
大家都在看
更多-
- 糖尿病完全不能吃糖吗
- 时间:2026-09-15
-
- 蚂蚁庄园小课堂2026年9月16日最新题目答案
- 时间:2026-09-15
-
- 小鸡答题今天的答案是什么2026年9月16日
- 时间:2026-09-15
-
- 蚂蚁庄园每日答题答案2026年9月16日
- 时间:2026-09-15
-
- 以下哪种粮食是酿造绍兴黄酒的主要原料 蚂蚁庄园今日答案9月16日
- 时间:2026-09-15
-
- 劝学名句“及时当勉励,岁月不待人”出自哪位诗人 蚂蚁庄园今日答案9.16
- 时间:2026-09-15
-
- 蚂蚁庄园今天答题答案2026年9月16日
- 时间:2026-09-15
-
- 蚂蚁庄园答题今日答案2026年9月16日
- 时间:2026-09-15
