2011-07-09 8 views
8

Tengo curiosidad sobre las alternativas a los componentes de RoR o RoR.Alternativas para Ruby on Rails y/o sus componentes

Algunas investigaciones abrieron el ORM alternatives to ActiveRecord aquí en SO.

Así que queda es la pregunta acerca de las alternativas para ...

  1. ... los controladores (ActiveController)
  2. ... las vistas (ActiveView)
  3. ... sí RoR
  4. ... cualquier otro componente que me falta aquí: D

Realmente, estoy muy contento con todos ellos, pero estoy pidiendo por pura curiosidad.

+0

Hay una gema llamada 'InheritedResources' (https://github.com/openteam/inherited_resources). Es una extensión de ActiveController y parece bastante buena. – bassneck

Respuesta

19

En lugar de ActiveRecord, hay varios para elegir. El mayor competidor (y mi favorito) parece ser DataMapper, luego está Sequel, Mongoid, MongoMapper. También hay muchos otros, pero estos son jugadores relativamente grandes.

En lugar de ActionView (no activo ... Acción ... confuso, lo sé), no he encontrado nada. He visto muchas adiciones, pero no reemplazos completos. Supongo que eso significa que la mayoría de las personas están contentas con ActionView. Ahora, hay otros motores de plantillas disponibles. El gran jugador aquí es HAML. Sin embargo, usar HAML no significa que no estés usando ActionView. Todavía está usando ActionView, solo con un preprocesador de plantilla diferente.

Alternativas a RoR. Nuevamente, hay algunos. Los grandes jugadores son Sinatra, Merb (que comenzó en los primeros días de Rails por algunas personas que no estaban de acuerdo con una o dos cosas en Rails, y luego Rails aprendió una o dos cosas y tomó algunas partes y piezas de nuevo ... ¡confuso!) . También hay Ramaze, pero no sé mucho al respecto.

El problema es que Rails es más o menos inigualable en lo que hace. Si tiene acceso a una aplicación web escrita en Ruby, probablemente sea una aplicación de Rails o una de Sinatra. Sinatra satisface una necesidad diferente de Rails. Rails quiere proporcionarle una gran variedad de herramientas para hacer las cosas rápidamente, mientras que el objetivo principal de Sinatra es ser liviano y mantenerse fuera de su camino. Rails es enorme, mientras que Sinatra básicamente reduce un mapa/despachador de ruta glorificado (lo digo en una buena forma), dejándote construir tu aplicación web como mejor te parezca. Sinatra hace que sea más fácil empaquetar una pequeña herramienta de administración web dentro de una gema, por ejemplo. Probablemente no quieras incluir una aplicación de Rails dentro de una gema. Eso sería bastante exagerado.

En términos de "otros componentes", lo más importante (aunque no es cosa de Rails) que se me ocurre es Test :: Unit. Si bien Rails solo se envía con Test :: Unit, y no le impide usar otra cosa, vale la pena mencionar que hay otros frameworks de prueba disponibles. RSpec es el otro gran jugador aquí, y también hay ZenTest. También puede consultar Shoulda, que es un complemento, más que una alternativa.

+0

Gracias por esta respuesta, esperaré uno o dos días hasta aceptar, ¡pero este es un candidato! ¿Por qué no acepto ahora? Muchas personas no leen la pregunta con las respuestas aceptadas que escuché, pero quiero tener la pregunta viva durante uno o dos días. – NobbZ