使用Ruby On Rails 创建后端项目

第一步 使用 Dev Containers 启动容器

​这里使用github上的oh-my-env-1举例

使用Vsode Code 插件 Dev Containers 创建一个容器

什么是Dev Containers?

Visual Studio Code Dev Containers 是一款 Visual Studio Code 扩展(原名为Visual Studio Code Remote - Containers),可以帮助用户通过 Docker 容器来开发应用程序。使用 Remote - Containers,用户可以将开发环境打包到一个 Docker 容器中,避免本地开发环境的依赖问题和潜在的环境冲突,并且可以在不同的开发机器上方便地分享和重用开发环境。

我们先使用vscode,加载容器项目,打开 Visual Studio Code 命令面板(快捷键 Ctrl+Shift+P 或者 Command+Shift+P),输入 "Remote-Containers: Open Folder in Container" 并选择你的项目目录。这会启动一个新的 Docker 容器,将你的项目代码和开发环境打包到容器中。

耐心等待容器启动

第二步 确认安装的容器环境

容器加载完成后,直接进入到容器内,上文说到的容器模板已经集成了许多环境,如:

  • ruby (可使用rvm版本切换工具切换版本)
  • pnpm
  • zsh
  • linux
  • node (可使用nvm版本切换工具切换版本)
  • bundle (ruby的包管理工具)

什么是bundle? 在 Ruby on Rails 中,bundle 是一个包管理器,用于管理项目中的 gem 依赖项。Gem 是 Ruby 程序中可重用代码的一个单元,类似于 Python 中的包或 JavaScript 中的模块。通过使用 bundle,可以轻松地将所需的 gem 安装到项目中,并管理 gem 之间的版本冲突。

bundle 管理器会根据项目中的 Gemfile 文件来确定要安装哪些 gem,并且在安装过程中会自动解决 gem 之间的依赖关系,以确保所有 gem 版本兼容并且可以正常工作。

通过 bundle,可以方便地在多个开发环境和生产环境之间共享项目所需的 gem,并且在更新 gem 版本时也可以保证代码的稳定性。同时,bundle 还提供了一些常用的命令,例如 bundle install 用于安装 gem,bundle update 用于更新 gem 版本等等。

总之,bundle 是 Ruby on Rails 中非常重要的一个工具,用于管理 gem 依赖项,简化 gem 安装和版本管理的过程,提高开发效率。

综上所述,除了前端的node环境,rails的ruby环境已经启动完成

第三步 初始化目录

1.修改gem souce 和 bundle config,加速国内源,就像npm修改淘宝源

这里要介绍一下,什么是 gem和bundle

  • Gem是Ruby语言的包管理器,类似于其他编程语言中的npm或pip。

  • Bundle 是一个用于 Ruby 项目依赖管理的工具。通过 Bundle,我们可以指定一个项目所需要的 Gem 包以及它们的版本,并通过 Bundle 提供的命令来安装和管理这些依赖

Gem是Ruby的包管理器,它可以用于全局安装Gems,也可以用于创建Gems,因此它是一种更通用的工具。而Bundle是一种用于管理项目中Gems的工具,它可以用于在项目中安装、更新和卸载Gems,以及在项目中设置和管理依赖关系。因此,Bundle更专注于项目级别的依赖管理。类比到npm和yarn的话,Gem类似于npm,而Bundle则更像是yarn。

#用于向 RubyGems 源列表中添加 ruby-china 的源。删除原本的rubygems源
gem sources --add https://gems.ruby-china.com/ --remove https://rubygems.org/
#修改bundle
bundle config mirror.https://rubygems.org https://gems.ruby-china.com
复制代码

2. 安装Rails

gem install rails -v 7.0.2.3
复制代码

3.rails安装完成后,使用命令新建一个项目

# rails 创建 api模式 数据库: postgresql 跳过测试 项目名称: ruby-project
rails new --api --database=postgresql --skip-test ruby-project
# 成功后 进入目标目录 输入
bundle binstubs bundler
复制代码

bundle binstubs bundler 命令会在你的应用程序的 bin/ 目录中创建一个名为 bundler 的可执行文件,使你可以在不用加上 bundle exec 的前缀的情况下运行 bundler 命令。

后续使用bin/rails s 可以直接启动rails

4.使用Docker开启postgresql数据库

docker run -d --name db-for-mangosteen 
-e POSTGRES_USER=mangosteen 
-e POSTGRES_PASSWORD=123456 
-e POSTGRES_DB=mangosteen_dev 
-e PGDATA=/var/lib/postgresql/data/pgdata 
-v mangosteen-data:/var/lib/postgresql/data 
--network=network1      postgres:14
复制代码
  • docker run:使用 Docker 运行一个新的容器
  • -d:在后台运行容器
  • --name db-for-mangosteen:指定容器的名称为 db-for-mangosteen
  • -e POSTGRES_USER=mangosteen:设置环境变量 POSTGRES_USERmangosteen,用于指定 PostgreSQL 数据库的用户名
  • -e POSTGRES_PASSWORD=123456:设置环境变量 POSTGRES_PASSWORD123456,用于指定 PostgreSQL 数据库的密码
  • -e POSTGRES_DB=mangosteen_dev:设置环境变量 POSTGRES_DBmangosteen_dev,用于指定要创建的 PostgreSQL 数据库的名称
  • -e PGDATA=/var/lib/postgresql/data/pgdata:设置环境变量 PGDATA/var/lib/postgresql/data/pgdata,用于指定 PostgreSQL 数据库的数据目录
  • -v mangosteen-data:/var/lib/postgresql/data:将 Docker 主机上的数据卷 mangosteen-data 挂载到容器内的 /var/lib/postgresql/data 目录上,用于持久化数据
  • --network=network1:将容器连接到名为 network1 的 Docker 网络
  • postgres:14:指定要运行的 Docker 镜像名称和版本,此处为 PostgreSQL 14 版本的官方镜像。

5. 修改Rails 的database.yml文件

修改数据库

development:
<<: *default
database: mangosteen_dev
username: mangosteen
password: 123456
host: db-for-mangosteen
复制代码

这段代码是一个 YAML 格式的配置文件,通常用于 Rails 应用程序的数据库配置。这个文件包含了一个名为 development 的配置项,它继承自默认配置 default,并指定了以下参数:

  • database:数据库名称为 mangosteen_dev
  • username:数据库用户名为 mangosteen
  • password:数据库密码为 123456
  • host:数据库服务器的主机名为 db-for-mangosteen

这些参数用于指定 Rails 应用程序连接到 PostgreSQL 数据库的方式,以便在开发过程中使用数据库。在 Rails 应用程序中,这个配置文件通常位于 config/database.yml 文件中。通过修改这个文件,你可以轻松地更改应用程序的数据库配置。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码云笔记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值