倾心打造快速开发利器——The Brick!
从任何现有数据库轻松启动Rails应用
欢迎进入一个神奇的世界,这里可以即时运行的Rails应用程序只需一键生成!这个gem会自动创建模型、视图、控制器和路由,并且所有这些都不是一堆原始的辅助文件,而是存储在内存中。最棒的是,当你对数据库进行如添加新表或列的修改时,基础功能会立即可用,无需额外编写代码。对于像列表只读、编辑启用后的布局规则(在线或弹出模态)等通用行为,可以全局设定,同时也可以对每个模型进行更精细的行为调整和默认设置覆盖。

你可以以多种方式使用The Brick,例如快速浏览现有的数据集,全链路导航关联数据;轻松更新和创建数据,将表格或视图导出为CSV或Google Sheets;导入数据集,即使每一行都涉及到多个目标表;自动生成API端点;逐步创建最小化的辅助应用程序,按需编写文件;尝试各种数据布局,评估给定数据库设计的功能性等等。
我们有来自Deanin的**YouTube视频教程**,为你展示了如何从零开始。非常感谢你的分享!
此外,还有我早期录制的视频教程概述,建议准备好爆米花并开启播放器音量,因为这是一段较长的讲解:
简要概述
The Brick的宗旨是尽可能遵循Rails惯例。因此,模型、控制器和视图被独立处理。你可以选择仅自动化构建模型,然后自己编写控制器和视图,或者让The Brick自动构建一部分资源的控制器和视图,同时允许你在其他部分加入自定义代码。无论你想如何混合搭配,都是可能的。The Brick的目标是自动完成应用程序中更多繁琐而简单的部分,让你能专注于解决更棘手的问题。
默认生成的页面提供每个模型的“索引”和“显示”视图,通过链接展示相关的模型。列出所有记录的“索引”页只需一次数据库查询,避免了常见的“N+1”查询问题。智能JOIN添加策略确保了即使请求多跳远的数据字段,也能优化查询性能。这使开发者免于编写复杂的ActiveRecord查询。直到版本1.0.91,这种方法相当成功,但当涉及自我引用的表,如Employee表上有manager_id字段并使用定制的DSL [name]时,从相关表(如orders)的查询中,员工的名字和其上司的名字可能会显示相同(虽然显然员工和上司在同一个表中是两个不同的记录)。为了修复这个问题,从1.0.92版本开始,采用了一种全新的方法,即在解析Arel的AST树时捕获表别名逻辑,准确追踪与关联名称相对应的关系表。这还带来了一个很酷的功能,即查找复杂ActiveRecord查询的表别名。
“显示”页面上,单个记录的CRUD操作可以直接完成。日期和时间字段使用轻量级库“flatpickr”实现弹出日历编辑。
在模型层面,所有主要的ActiveRecord关联都被构建出来,包括has_many和belongs_to,以及has_many :through、Single Table Inheritance(STI)和多态关联。基于数据库中的外键,生成相应的belongs_tos,然后添加与其相反的has_manys。进一步地,如果有仅包含belongs_to字段的表,会被认为是“关联”(或“连接”)表,接着会添加适当的has_many :through关联。比如,如果存在如下关系:
Recipe --> RecipeIngredient <-- Ingredient
首先,在RecipeIngredient上建立两个belongs_to关联,然后反向添加两个对应的has_manys —— 一个是Recipe中的,另一个是Ingredient中的。最后,如果RecipeIngredient被认为是关联表(只要除了这两个外键之外没有其他列,即recipe_id和ingredient_id),那么在Recipe中会自动添加HMT:
has_many :ingredients, through: :recipe_ingredients
而在Ingredient中也会添加另一个HMT:
has_many :recipes, through: :recipe_ingredients
这样,访问http://localhost:3000/recipes时,就可以看到每个食谱以及它所需的全部食材,通过HMT实现。
如果(或两者)的外键在数据库中缺失,可以在初始化文件中添加。例如,如果Recipe和RecipeIngredient之间的外键丢失,可以通过以下方式在初始文件中指定:
::Brick.additional_references = [['recipe_ingredients', 'recipe_id', 'recipes']]
The Brick可以自动生成初始化文件,只需运行rails g brick:install,并在过程中自动推断缺失的外键参考。它基于找到看起来像是适当键名的列名,并在数据类型与主键类型匹配时做出注释掉的建议。通过取消注释你需要的部分(甚至全部),对The Brick来说,这些外键就像是存在的,Rails就会提供参照完整性。
许多其他设置可以在config/initializers/brick.rb中找到。
还有很多有趣的生成器,如果你想从现有数据库生成一套迁移文件,可以运行生成器bin/rails g brick:migrations。同样,可以生成模型文件:bin/rails g brick:models。甚至现有的数据行也可以保存到db/seeds.rb文件中,只需运行bin/rails g brick:seeds。有关这些的更多信息,请参阅1.f,1.g,1.h部分——“自动生成___文件”的章节。
这篇文章无法一一列举The Brick的所有功能和优势,但它已经足够引起你的兴趣,探索这个强大的工具,看看它如何简化你的工作流程。无论是快速浏览数据库结构,还是构建高度互动的应用程序,The Brick都将是你开发过程中的强大盟友。现在就开始你的旅程吧!
PaddleOCR-VLPaddleOCR-VL 是一款顶尖且资源高效的文档解析专用模型。其核心组件为 PaddleOCR-VL-0.9B,这是一款精简却功能强大的视觉语言模型(VLM)。该模型融合了 NaViT 风格的动态分辨率视觉编码器与 ERNIE-4.5-0.3B 语言模型,可实现精准的元素识别。Python00- DDeepSeek-V3.2-ExpDeepSeek-V3.2-Exp是DeepSeek推出的实验性模型,基于V3.1-Terminus架构,创新引入DeepSeek Sparse Attention稀疏注意力机制,在保持模型输出质量的同时,大幅提升长文本场景下的训练与推理效率。该模型在MMLU-Pro、GPQA-Diamond等多领域公开基准测试中表现与V3.1-Terminus相当,支持HuggingFace、SGLang、vLLM等多种本地运行方式,开源内核设计便于研究,采用MIT许可证。【此简介由AI生成】Python00
openPangu-Ultra-MoE-718B-V1.1昇腾原生的开源盘古 Ultra-MoE-718B-V1.1 语言模型Python00
HunyuanWorld-Mirror混元3D世界重建模型,支持多模态先验注入和多任务统一输出Python00
AI内容魔方AI内容专区,汇集全球AI开源项目,集结模块、可组合的内容,致力于分享、交流。03
Spark-Scilit-X1-13BFLYTEK Spark Scilit-X1-13B is based on the latest generation of iFLYTEK Foundation Model, and has been trained on multiple core tasks derived from scientific literature. As a large language model tailored for academic research scenarios, it has shown excellent performance in Paper Assisted Reading, Academic Translation, English Polishing, and Review Generation, aiming to provide efficient and accurate intelligent assistance for researchers, faculty members, and students.Python00
GOT-OCR-2.0-hf阶跃星辰StepFun推出的GOT-OCR-2.0-hf是一款强大的多语言OCR开源模型,支持从普通文档到复杂场景的文字识别。它能精准处理表格、图表、数学公式、几何图形甚至乐谱等特殊内容,输出结果可通过第三方工具渲染成多种格式。模型支持1024×1024高分辨率输入,具备多页批量处理、动态分块识别和交互式区域选择等创新功能,用户可通过坐标或颜色指定识别区域。基于Apache 2.0协议开源,提供Hugging Face演示和完整代码,适用于学术研究到工业应用的广泛场景,为OCR领域带来突破性解决方案。00- HHowToCook程序员在家做饭方法指南。Programmer's guide about how to cook at home (Chinese only).Dockerfile013
- PpathwayPathway is an open framework for high-throughput and low-latency real-time data processing.Python00