【发布时间】:2011-04-01 21:27:54
【问题描述】:
典型的 Rails gem 和基于机架的框架 gem 有什么区别?
只是大部分逻辑都在lib 文件夹中,并且不使用rails 路由等而不是使用机架框架吗?
【问题讨论】:
典型的 Rails gem 和基于机架的框架 gem 有什么区别?
只是大部分逻辑都在lib 文件夹中,并且不使用rails 路由等而不是使用机架框架吗?
【问题讨论】:
“基于机架”只是意味着 gem 使用机架堆栈的某些部分来实现其功能。例如,Devise engine 使用 Rack 中间件插入 Warden,Rails 使用 Rack 中间件进行身份验证。这使得它非常灵活,也使得使用 Rack 的 gem 的特定部分可以轻松(至少在理论上)移植到其他 Rack 应用程序。
请注意,基于 Rack 并不意味着该库可以与任何 Rack 应用程序一起使用;例如,Devise 是基于 Rack 的,但也实现了一些特定于 Rails 的功能(例如custom models)。
【讨论】: