Sinatra ActiveRecord 快速入门10分钟搭建完整的 CRUD 应用【免费下载链接】sinatra-activerecordExtends Sinatra with ActiveRecord helper methods and Rake tasks.项目地址: https://gitcode.com/gh_mirrors/sin/sinatra-activerecordSinatra ActiveRecord 是一个强大的扩展它为轻量级 Web 框架 Sinatra 提供了 ActiveRecord ORM 的支持让开发者能够快速构建具有完整数据库功能的 Web 应用。本文将带你在10分钟内从零开始搭建一个功能完善的 CRUD 应用体验 Sinatra ActiveRecord 带来的便捷开发体验。为什么选择 Sinatra ActiveRecord对于需要快速开发小型 Web 应用或 API 的开发者来说Sinatra ActiveRecord 是一个理想的选择。它结合了 Sinatra 的简洁灵活和 ActiveRecord 的强大数据库操作能力不需要复杂的配置即可实现数据持久化让你专注于业务逻辑的实现。准备工作环境搭建首先确保你的开发环境中已经安装了 Ruby 和 Bundler。接下来通过以下步骤创建项目并添加必要的依赖克隆项目仓库git clone https://gitcode.com/gh_mirrors/sin/sinatra-activerecord cd sinatra-activerecord创建并配置Gemfilegem sinatra-activerecord gem sqlite3 gem rake安装依赖bundle install配置数据库连接Sinatra ActiveRecord 支持多种数据库配置方式最常用的是通过database.yml文件或直接在代码中设置。我们以 SQLite 为例创建config/database.yml文件development: adapter: sqlite3 database: db/development.sqlite3 test: adapter: sqlite3 database: db/test.sqlite3在应用入口文件app.rb中引入并配置 Sinatra ActiveRecord# app.rb require sinatra/activerecord # 自动加载 config/database.yml set :database_file, config/database.yml如果使用模块化 Sinatra 应用需要先注册扩展class YourApplication Sinatra::Base register Sinatra::ActiveRecordExtension end设置 Rake 任务为了方便执行数据库迁移等操作需要配置 Rake 任务。创建Rakefile并添加以下内容# Rakefile require sinatra/activerecord/rake namespace :db do task :load_config do require ./app end end现在可以通过以下命令查看所有可用的数据库任务bundle exec rake -T你将看到类似以下的输出rake db:create # Create the database from DATABASE_URL or config/database.yml rake db:create_migration # Create a migration (parameters: NAME, VERSION) rake db:drop # Drops the database using DATABASE_URL or the current Rails.env rake db:migrate # Migrate the database (options: VERSIONx, VERBOSEfalse) rake db:rollback # Rolls the schema back to the previous version (specify steps w/ STEPn) rake db:seed # Load the seed data from db/seeds.rb创建数据模型和迁移生成迁移文件使用 Rake 任务创建一个用户表迁移bundle exec rake db:create_migration NAMEcreate_users这将在db/migrate目录下生成一个类似[timestamp]_create_users.rb的文件。编辑该文件class CreateUsers ActiveRecord::Migration def change create_table :users do |t| t.string :name t.string :email t.timestamps end end end执行迁移运行以下命令应用迁移bundle exec rake db:migrate这将创建db/development.sqlite3数据库文件和users表。创建模型在app.rb中定义 User 模型class User ActiveRecord::Base validates_presence_of :name, :email validates_uniqueness_of :email end实现 CRUD 操作现在我们来实现基本的 CRUD 路由。编辑app.rb文件添加以下内容require sinatra require sinatra/activerecord set :database_file, config/database.yml class User ActiveRecord::Base validates_presence_of :name, :email validates_uniqueness_of :email end before do content_type :json end # 获取所有用户 get /users do User.all.to_json end # 获取单个用户 get /users/:id do user User.find_by_id(params[:id]) user ? user.to_json : { error: User not found }.to_json end # 创建用户 post /users do user User.new(params) user.save ? user.to_json : { error: user.errors.full_messages }.to_json end # 更新用户 put /users/:id do user User.find_by_id(params[:id]) if user user.update(params) user.to_json else { error: user ? user.errors.full_messages : User not found }.to_json end end # 删除用户 delete /users/:id do user User.find_by_id(params[:id]) if user user.destroy { message: User deleted successfully }.to_json else { error: User not found }.to_json end end测试应用启动 Sinatra 应用ruby app.rb使用 curl 或 Postman 测试 API创建用户curl -X POST -H Content-Type: application/json -d {name:John Doe,email:johnexample.com} http://localhost:4567/users获取所有用户curl http://localhost:4567/users更新用户curl -X PUT -H Content-Type: application/json -d {name:Jane Doe} http://localhost:4567/users/1删除用户curl -X DELETE http://localhost:4567/users/1项目结构解析一个典型的 Sinatra ActiveRecord 项目结构如下. ├── app.rb # 应用入口文件 ├── config/ │ └── database.yml # 数据库配置 ├── db/ │ ├── migrate/ # 迁移文件目录 │ ├── development.sqlite3 # 开发数据库 │ └── seeds.rb # 种子数据 ├── Gemfile # 项目依赖 └── Rakefile # Rake 任务配置进阶技巧使用种子数据创建db/seeds.rb文件添加测试数据User.create([ { name: Alice, email: aliceexample.com }, { name: Bob, email: bobexample.com } ])运行以下命令加载种子数据bundle exec rake db:seed数据库版本控制使用以下命令查看当前数据库版本bundle exec rake db:version回滚迁移# 回滚最近一次迁移 bundle exec rake db:rollback # 回滚指定步数 bundle exec rake db:rollback STEP3总结通过本文的介绍你已经掌握了使用 Sinatra ActiveRecord 快速构建 CRUD 应用的基本方法。从环境搭建、数据库配置到实现完整的增删改查功能整个过程简单高效充分体现了 Sinatra ActiveRecord 的优势。无论是开发小型 API、原型验证还是简单的 Web 应用Sinatra ActiveRecord 都能帮助你快速实现数据持久化让你更专注于业务逻辑的开发。现在就开始尝试使用 Sinatra ActiveRecord 构建你的下一个项目吧资源推荐官方文档README.md示例代码example/sqlite/app.rb迁移文件示例example/sqlite/db/migrate/20140415201712_create_users.rb【免费下载链接】sinatra-activerecordExtends Sinatra with ActiveRecord helper methods and Rake tasks.项目地址: https://gitcode.com/gh_mirrors/sin/sinatra-activerecord创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考