全书目录

第二十八篇:Ruby on Rails 完全指南 —— 城市脚手架工务署宇宙

第十六章:后台任务、邮件、附件仓库 —— 这才是一整套工务署

1 分钟 402 字 第 509 / 962 个阅读单元

Rails 强的从来不只是 CRUD。

#1. Active Job:后台运输车队

当前官方指南里,Active Job 的默认排队后端主线是 Solid Queue
但在很多生产项目里,你也仍会见到 Sidekiq 等替代方案。

一个最小任务:

ruby
class PermitApprovedJob < ApplicationJob
  queue_as :default

  def perform(permit_id)
    permit = Permit.find(permit_id)
    PermitMailer.approved(permit).deliver_now
  end
end

入队:

ruby
PermitApprovedJob.perform_later(@permit.id)

这代表:

text
别在受理窗口当场干慢活
把它派给后勤运输车队
#2. Action Mailer:公函邮政室
ruby
class PermitMailer < ApplicationMailer
  def approved(permit)
    @permit = permit
    mail to: "owner@example.com", subject: "施工许可已批准"
  end
end
#3. Active Storage:附件仓库

如果许可单要挂图纸、照片、合同附件,Rails 官方配套就是 Active Storage:

ruby
class Permit < ApplicationRecord
  has_one_attached :blueprint
  has_many_attached :photos
end

这时 Rails 不只是“会存文件”。
它是把文件也纳入工务署体系:

  • 模型可直接挂附件
  • 表单可直接上传
  • 云存储可直接配置
  • 图片变体、预览、直传都有官方路线
#4. Action Text:富文本公文室

如果你的系统里有公告正文、说明文档、通知模板,Action Text 让富文本进入 Rails 正统体系。

所以你会发现,Rails 的完整感来自这里:

text
不是我自己东拼西凑十几个库
而是很多配套设施本来就在工务署体系里