典型的rails gem和基于rack的框架gem之间有什么区别?
只是大多数逻辑都在lib
文件夹中,并且不使用rails路由等,而不是使用机架框架?
答案 0 :(得分:1)
“基于机架”只是意味着gem使用Rack堆栈的某些部分来实现其功能。例如,Devise engine使用Rack中间件插入Warden,Rack中间件Rails用于验证。这使得它非常灵活,并且使得使用Rack的宝石的特定部分可以很容易地(至少在理论上)移植到其他Rack应用程序。
请注意,基于Rack- 的并不意味着该库可以与任何 Rack应用程序一起使用;例如,Devise是基于Rack的,但也实现了一些特定于Rails的功能(例如custom models)。