倾心打造快速开发利器——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都将是你开发过程中的强大盟友。现在就开始你的旅程吧!
- QQwen3-Next-80B-A3B-InstructQwen3-Next-80B-A3B-Instruct 是一款支持超长上下文(最高 256K tokens)、具备高效推理与卓越性能的指令微调大模型00
- QQwen3-Next-80B-A3B-ThinkingQwen3-Next-80B-A3B-Thinking 在复杂推理和强化学习任务中超越 30B–32B 同类模型,并在多项基准测试中优于 Gemini-2.5-Flash-Thinking00
GitCode-文心大模型-智源研究院AI应用开发大赛
GitCode&文心大模型&智源研究院强强联合,发起的AI应用开发大赛;总奖池8W,单人最高可得价值3W奖励。快来参加吧~092Sealos
以应用为中心的智能云操作系统TSX00GitCode百大开源项目
GitCode百大计划旨在表彰GitCode平台上积极推动项目社区化,拥有广泛影响力的G-Star项目,入选项目不仅代表了GitCode开源生态的蓬勃发展,也反映了当下开源行业的发展趋势。07- HHunyuan-MT-7B腾讯混元翻译模型主要支持33种语言间的互译,包括中国五种少数民族语言。00
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).Dockerfile01
- PpathwayPathway is an open framework for high-throughput and low-latency real-time data processing.Python00
- Dd2l-zh《动手学深度学习》:面向中文读者、能运行、可讨论。中英文版被70多个国家的500多所大学用于教学。Python011
热门内容推荐
最新内容推荐
项目优选









