¿Cuál es la diferencia entre el bastidor y rieles de metal (Rubí)?
Pregunta
No entiendo!
rack: http://rack.rubyforge.org/
rieles de metal: http://weblog.rubyonrails.org/ 2008/12/17 / introducción de carriles de metal
He leído los dos artículos y mis ojos se borrosa. ¿Cómo se relacionan los dos componentes? Ejemplos serían grandes?
Solución
Rack es una especificación muy ligero que los servidores Web Ruby pueden poner en práctica. Es middleware que significa que se encuentra en entre el servidor web (por ejemplo de pasajeros) y carriles.
rieles de metal es una forma de procesar una petición HTTP usando los carriles para cuando se necesita el máximo rendimiento. Es prácticamente lo lleva hasta el metal y no pasa por todas las características normales (y por tanto de arriba) que el ciclo de petición / respuesta de los rieles estándar le da. Técnicamente, rieles de metal es una implementación de un controlador de estante.
Es posible encontrar estos dos Railscasts informativo sobre el tema:
Puede obtener una lista de la pila de rack de middleware para una aplicación Rails usando rake middleware
Otros consejos
Rack es un genérico de Ruby API / capa de abstracción que permite a los diferentes entornos de aplicaciones se integran a un servidor web.
rieles de metal es la implementación de los carriles de un manejador de Rack. Incluye no sólo un controlador que llama a los carriles, pero también expone su propia API que hace que sea más fácil para usted para crear sus propios controladores que afectaron a los carriles centrales de servidores web y de derivación.
Hay una gran discusión y algunos ejemplos de de Jesse Newland sitio :
Así que, esencialmente, rieles de metal es una envoltorio fino alrededor de nuevo rack de Rails el apoyo de middleware . rack middleware es algo bastante potente: componentes del marco-independiente que solicitudes de proceso independiente o en concierto con otro middleware.
Además de las diferencias cubiertos por otras personas, que quería tener en cuenta que una aplicación de rack podría ser cualquiera de middleware o un criterio de valoración final, mientras que ActionController::Metal
es siempre un punto final de un middleware que nunca.