Ruby: 学习 Ruby
全面的 Ruby 和 Rails 指南
👋 欢迎来到 Stackhero 文档!
Stackhero 提供了一种即用型 Ruby 云 解决方案,具有众多优势,包括:
- 通过简单的
git push在几秒钟内 部署您的应用程序。- 使用您自己的域名,并享受 HTTPS 证书的自动配置以增强安全性。
- 享受自动备份、一键更新以及简单、透明和可预测的定价带来的安心。
- 通过私有和专用的 VM获得最佳的性能和强大的安全性。
节省时间并简化您的生活:尝试 Stackhero 的 Ruby 云托管 解决方案只需 5 分钟!
Ruby 和 Ruby on Rails
Ruby 是一种高级的解释型编程语言,旨在简化和提高生产力。其优雅的语法让开发者用更少的代码完成更多工作,同时支持过程式、面向对象和函数式编程范式。
Ruby on Rails,通常简称为 Rails 或 RoR,是一个用 Ruby 编写的强大 Web 应用框架。基于模型-视图-控制器 (MVC) 模式构建,Rails 推崇约定优于配置,并强调不重复自己 (DRY) 原则,使构建复杂的 Web 应用程序更容易和高效。
Rails 命令行 (CLI)
Rails 命令行界面 (CLI) 是管理 Rails 应用程序的强大工具。它包括创建新项目、启动服务器、通过控制台访问应用程序以及生成各种组件(如模型和控制器)的命令。以下是每个 Rails 开发者应该知道的一些基本命令:
-
创建一个新的 Rails 项目:
rails new project_name -
启动 Rails 服务器:
rails server -
打开 Rails 控制台:
rails console -
生成一个新的控制器:
rails generate controller controller_name action_name -
生成一个新的模型:
rails generate model ModelName field:type -
运行数据库迁移:
rails db:migrate
Rails 路由
路由将传入请求连接到 Rails 应用程序中的适当控制器和动作。它提供了一种简单的方法来设计应用程序的 URL 和端点。路由在 config/routes.rb 文件中定义。以下是一些常见的路由模式:
-
根路由:
root 'controller_name#action_name' -
通用路由:
get '/path', to: 'controller#action' -
资源路由(生成标准 CRUD 路由):
resources :model_name
Rails 控制器动作
控制器作为模型和视图之间的中介,通过接收传入请求并呈现适当的响应。以下示例说明了列出、显示、创建、更新和删除资源的常见控制器动作:
-
Index 动作(列出所有对象):
def index @objects = ModelName.all end -
Show 动作(显示单个对象):
def show @object = ModelName.find(params[:id]) end -
New 动作(显示新对象的表单):
def new @object = ModelName.new end -
Create 动作(保存新对象):
def create @object = ModelName.new(params.require(:model_name).permit(:field1, :field2)) if @object.save redirect_to @object else render :new end end -
Edit 动作(显示编辑现有对象的表单):
def edit @object = ModelName.find(params[:id]) end -
Update 动作(应用对现有对象的更改):
def update @object = ModelName.find(params[:id]) if @object.update(params.require(:model_name).permit(:field1, :field2)) redirect_to @object else render :edit end end -
Destroy 动作(删除对象):
def destroy @object = ModelName.find(params[:id]) @object.destroy redirect_to model_name_path end
Rails ActiveRecord 基本查询
ActiveRecord 是 Rails 内置的对象关系映射 (ORM) 系统。它抽象了数据库交互,让您可以将数据库记录作为原生 Ruby 对象进行操作。以下是一些常见的 ActiveRecord 查询,用于获取和操作数据:
-
检索所有对象:
ModelName.all -
按 ID 查找对象:
ModelName.find(id) -
按特定字段值查找对象:
ModelName.find_by(field: value)
Rails ERB 助手
嵌入式 Ruby (ERB) 是一种模板系统,允许您在 HTML 中嵌入 Ruby 代码。ERB 助手是简化视图中常见任务的方法。以下是一些示例:
-
创建链接:
<%= link_to "Link Text", path %> -
显示错误消息:
<% @object.errors.full_messages.each do |message| %> <div><%= message %></div> <% end %>
Rails 迁移
迁移允许您以一致和可验证的方式演变数据库架构。它们使用 Ruby DSL,因此您不必手动编写原始 SQL,使您的架构更改与数据库无关。以下是如何创建和运行迁移:
-
创建新的迁移:
rails generate migration MigrationName -
在生成的迁移文件中 (
db/migrate/):class MigrationName < ActiveRecord::Migration[6.0] def change add_column :table_name, :column_name, :type remove_column :table_name, :column_name end end