异步 Ruby on Rails

异步编程可以让你的应用程序运行得更快。我将分享如何在 Ruby on Rails 中使用异步来加速你的应用程序。虽然 Ruby 中有示例,但这些原则适用于任何语言。 如果你想要异步编程的介绍或者更喜欢视频格式,我也可以 谈论了这件事 在 热带.rb 2024。 我将把这些例子归纳为两个基本原则。这是第一个: 尽可能推迟做事。懒惰不一定是坏事。实际上,这意味着几件事: 使用以以下内容结尾的方法时请注意 _now。它们是异步执行任务的有力候选者。一个常见的例子是发送电子邮件。想象一下,Rails 控制器在用户注册后发送电子邮件: class RegistrationsController def create @registration = Registration.new(params) if @registration.save RegistrationMailer .welcome_email(@registration) .deliver_now redirect_to @registration else # … end end end 请求不需要等待电子邮件发送完成。使用 deliver_later 此处可以加快请求速度。这同样适用于任何其他类型的工作!如果您正在保存统计数据、处理数据或其他不需要立即完成的事情, perform_later。 您还可以删除与以下对象异步的 Active Storage 文件 purge_later: class User 拆分关键和非关键 CSS 也有帮助。你可以 延迟加载字体 和 font-display: swap,它将在自定义字体加载时使用后备字体呈现文本。 […]

Rails 推出 620 万美元融资,用于其去中心化 FTX 替代方案

去中心化加密货币交易所 Rails 的联合创始人兼首席执行官 Satraj Bambra 独家告诉 >,该公司已筹集 620 万美元,试图填补 FTX 在 2022 年崩溃后留下的空白。 目前,该公司正处于在选定的加密货币友好国家推出离岸服务的早期阶段,其中不包括美国 加密社区正在关注 Rails,因为它试图通过构建集中式和去中心化的底层技术来跨越加密货币交易所的鸿沟。 此轮融资由 Slow Ventures 领投,CMCC Global、Round13 Capital 和 Quantstamp 也跟投。 班布拉表示,这笔资金专门用于招聘工程团队以及扩大其许可和监管策略,以使交易所“完全合规”。 虽然 FTX 存在很多问题, 特别是滥用客户存款, Rails 强调其客户存款安全以及加密衍生品,或 永续期货 交易方面; 自从萨姆·班克曼-弗里德的交易所解散以来,机构一直在缺失这一点。 “差距很大,尤其是在永久 [futures] 站在机构喜欢的曝光方式一边,”班布拉说。 他与妻子 Megha Bambra 以及 Grindr 前首席运营官 Rick Marini 共同创立了该公司。 这对夫妻团队此前共同创立了一家初创公司——加密钱包 BlockEQ,该公司后来出售给了加密交易平台 Coinsquare 约1200万加元,即 880 万美元,2018 年。 Bambra […]

盈利支付初创公司 Zūm Rails 完成 1050 万美元 A 轮融资

Züm 由 Versapay 校友 Flinks 创立,正在寻求加速其在美国的扩张。 总部位于蒙特利尔的金融科技初创公司自 2019 年起启动 祖姆轨道 目前,该公司已为其支付平台筹集了 1050 万加元的 A 轮融资,该平台旨在将开放式银行业务与即时支付相结合。 联合创始人兼首席销售官 Miles Schwartz 是在餐桌上创立的,Zūm Rails 现在每月的支付额超过 10 亿美元。 由唯一投资者 Arthur Ventures 牵头的全股权 A 轮融资将用于扩展 Zūm Rails 在美国的平台,并通过新的银行即服务 (BaaS) 功能来发展其解决方案。 Zūm Rails 由 Schwartz、首席执行官 Marc Milewski 和首席技术官 Marcel Ferreira 创立。 施瓦茨 (Schwartz) 最初涉足金融科技行业,担任总部位于蒙特利尔的合伙人兼首席销售官 弗林克斯,而 Milewski 是该公司的早期员工之一 维萨佩在那里,他负责加拿大第一个电子资金转账 (EFT) 网关的开发、销售和运营。 在 Flinks,Schwartz […]

Rails 7 的身份验证与授权

授权意味着允许或拒绝当前用户对某些 URL(或者更一般地说,任何类型的资源)的访问。 它与身份验证密切相关,但又有所不同。 想想关于气候变化的国际会议。 认证就是门票,没有门票就不能进入会议。 授权是关于检查访问的门票级别:是否允许您访问 A 门或 B 门? 使用 Rails 7 进行身份验证 既然 Rails 似乎提倡使用生成器进行身份验证(Rails 8 中就会出现这种情况),让我们使用最接近的可能性(现在):auth-zero 生成器。 先决条件 我将在本教程中使用的工具 1 2 3 4 5 ruby -v # 3.3.0 rails -v # 7.1.3 bundle -v # 2.4.10 node -v # 20.9.0 git –version # 2.34.1 授权前,认证 既然 Rails 似乎提倡使用生成器进行身份验证(Rails 8 中就会出现这种情况),让我们使用最接近的可能性(现在):auth-zero 生成器。 那么让我们从构建一个身份验证系统开始(无 […]

像 Rails 8 一样生成身份验证

需要验证器 Rails 没有默认的方式来验证用户身份,就像 Laravel 在 PHP 世界中所做的那样。 长期以来,Devise gem 一直是 Rails 的最佳选择,但由于长期在 Reddit 上争论的原因,它并没有达到 100% 的采用率。 来自DHH: 我们可以教 Rails 开发人员如何使用基本块 [of authentication] 通过添加一个基本的身份验证生成器,该生成器本质上用作脚手架,但用于身份验证。 最接近 Rails 7 的身份验证生成器 这 身份验证零 gem 是迄今为止最接近的解决方案。 我用过。 我发现它非常令人愉快,代码行很少,非常容易定制,完整的测试套件可确保我的所有定制不会产生任何类型的回归。 最后,我在验证之上添加了一些自定义的turbo_stream,以确保一流的用户体验。 这里的教程是我当前使用的简化版本。 先决条件 对于本教程,您将需要: 1 2 3 4 5 ruby -v # 3.3.0 rails -v # 7.1.3 bundle -v # 2.4.10 node […]

Rails form_附教程 | 引导轨

“form_with”被称为表单助手,这意味着它是构建众所周知的标准 HTML 表单的抽象。 需要form_with 首先,我们应该提到 为什么我们无论如何都需要一个帮手。 毕竟,Web 表单与 Web 本身一样古老,将其包装在 Ruby 或 Rails 帮助器中不会让事情变得更复杂吗? 乍一看,你是完全正确的。 但请记住 铁轨哲学。 Rails价值集成系统,这意味着在某一时刻我们必须依赖浏览器和服务器之间的强大协作。 这种合作(部分)是由帮助者确保的 如果没有帮助者,您将不得不关心: 边注 :对 Rails 的许多批评是该工具将抽象推得太远,我在某种程度上同意这一点。 多少抽象对您来说“足够好”完全取决于您(或您的技术主管)。 从头开始的 Rails 教程 那么让我们从头开始教程。 我将在本教程中使用的工具: 1 2 3 ruby -v # 3.3.0 bundle -v # 2.4.10 node -v # 20.9.0 然后让我们进入常用工作区的根目录,开始构建一个全新的 Rails 应用程序: 1 2 3 4 5 mkdir formwith […]