很多人说 Rails 有“魔法”。
这话一半对,一半不对。
Rails 的所谓魔法,本质上大多来自这些机制叠加:
- 文件路径与常量名匹配
- 路由约定
- 视图默认查找规则
- 资源式命名
- 模型与表名的命名约定
- 自动加载与重新加载
- 大量默认行为已经约好
比如:
app/models/permit.rb
-> class Permit < ApplicationRecord
-> 默认映射 permits 表再比如:
PermitsController#show
-> 默认找 app/views/permits/show.html.erb所以 Rails 的“魔法感”来自:
你只写偏离标准的那部分,标准部分由工务署自动补齐。
这就是它能让人高效的原因。
也是它让不熟悉者感觉“怎么什么都自己好了”的原因。
一旦你理解了底层约定,它就不再神秘。