Quelle est la différence entre la crémaillère et Rails en métal (Ruby)?

StackOverflow https://stackoverflow.com/questions/762336

  •  11-09-2019
  •  | 
  •  

Question

Je ne comprends pas!

Rack: http://rack.rubyforge.org/

Rails métal: http://weblog.rubyonrails.org/ 2008/12/17 / d'introduction de rails en métal

J'ai lu les deux articles et mes yeux se trouble. Comment les deux composants se rapportent? Des exemples seraient grande?

Était-ce utile?

La solution

Rack est une spécification très léger que les serveurs Web Ruby peuvent mettre en œuvre. Il est middleware qui signifie qu'elle se trouve entre le serveur Web (par exemple pour le passager) et des rails.

Rails en métal est un moyen de traitement d'une requête HTTP en utilisant Rails lorsque vous avez besoin des performances maximales. Il vous prend pratiquement jusqu'au métal et court-circuite toutes les fonctions normales (et donc en tête) que la demande de standards Rails / cycle de réponse vous donne. Techniquement, Rails métal est une implémentation d'un gestionnaire de rack.

Vous trouverez peut-être ces deux Railscasts sur le sujet d'information:

  • métal Rails
  • Middleware rack

Vous pouvez obtenir une liste de la pile middleware Rack pour une application Rails en utilisant rake middleware

Autres conseils

Rack est une API générique Ruby / couche d'abstraction qui permet aux différents cadres d'application intégrer à un serveur Web.

Rails métal est mise en oeuvre de rails d'un gestionnaire de rack. Il comprend non seulement un gestionnaire qui appelle Rails, mais expose aussi sa propre API qui le rend plus facile pour vous de créer vos propres gestionnaires qui ont frappé les rails de base du serveur Web et by-pass.

Il y a une grande discussion et quelques exemples sur site Jesse Newland :

  

Alors, essentiellement, Rails en métal est un   wrapper mince autour nouveau rack Rails   soutien middleware . middleware Rack   est assez puissant choses:   éléments du cadre indépendant qui   traiter les demandes indépendamment ou en   concert avec d'autres middleware.

En plus des différences couvertes par d'autres personnes, je voulais noter qu'une application Rack pourrait être soit middleware ou un point de terminaison finale alors que ActionController::Metal est toujours un point final d'un middleware jamais.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top