压缩现代 Web 应用程序的复杂性。

只学习开始所需的知识,然后在前进的过程中不断提升。 Ruby on Rails 的规模从 HELLO WORLD 到 IPO。

您在好公司。

在过去二十年中,Rails 帮助无数公司获得了数百万用户和数十亿美元的市值。

这些只是其中一些大公司。自 Rails 问世以来,已经使用 Rails 创建了数十万个应用程序。

共同构建。

超过 6000 人 为 Rails 贡献了代码,还有更多人通过宣传、文档和错误报告为社区服务。 加入我们!

您需要的一切。

Rails 是一个全栈框架。 它附带了在前端和后端构建出色的 Web 应用程序所需的所有工具。

渲染 HTML 模板、更新数据库、发送和接收电子邮件、通过 WebSockets 维持实时页面、将作业排队以异步执行、将上传内容存储在云中、为常见攻击提供可靠的安全保护。 Rails 可以做到这一切,并且还有更多功能。

app/models/article.rb
class Article < ApplicationRecord
  belongs_to :author, default: -> { Current.user }
  has_many   :comments

  has_one_attached :cover_image
  has_rich_text :content, encrypted: true
  enum status: %i[ drafted published ]

  scope :recent, -> { order(created_at: :desc).limit(25) }

  after_save_commit :deliver_later, if: :published?

  def byline
    "Written by #{author.name} on #{created_at.to_s(:short)}"
  end

  def deliver_later
    Article::DeliveryJob.perform_later(self)
  end
end

Active Records 使建模变得容易。

数据库通过封装在丰富对象中的业务逻辑而变得栩栩如生。 对表之间的关联进行建模,在保存时提供回调,无缝加密敏感数据,并以美观的方式表达 SQL 查询。

app/controllers/articles_controller.rb
class ArticlesController < ApplicationController
  def index
    @articles = Article.recent
  end

  def show
    @article = Article.find(params[:id])
    fresh_when etag: @article
  end

  def create
    article = Article.create!(article_params)
    redirect_to article
  end

  private
    def article_params
      params.require(:article).permit(:title, :content)
    end
end

Action Controllers 处理所有请求。

控制器将域模型暴露给 Web,处理传入参数,设置缓存标头,并渲染模板,以 HTML 或 JSON 形式响应。

app/views/articles/show.html.erb
<h1><%= @article.title %></h1>

<%= image_tag @article.cover_image.url %>

<p><%= @article.content %></p>

<%= link_to "Edit", edit_article_path(@article) if Current.user.admin? %>

Action Views 混合了 Ruby 和 HTML。

模板可以使用 Ruby 的全部通用性,过多的代码被提取到帮助器中,域模型直接使用并与 HTML 交织在一起。

config/routes.rb
Rails.application.routes.draw do
  resources :articles do    # /articles, /articles/1
    resources :comments     # /articles/1/comments, /comments/1
  end

  root to: "articles#index" # /
end

Action Dispatch 路由 URL。

使用路由域语言配置 URL 如何连接到控制器。 路由暴露了作为资源一起使用的动作集合:索引、显示、新建、创建、编辑、更新、删除。

为幸福而优化。

Rails 团结并培养了一个强大的部落,围绕着关于编程和程序员本质的 一系列异端思想。 了解这些思想将帮助您了解框架的设计。

让我们开始吧。

了解有关 Hotwire 的更多信息,它是 Rails 的默认前端框架。

保持最新,在 YouTube本周 Rails 上关注 Rails。