Pregunta

He estado considerando el cambio de uso de PHP a Ruby on Rails para mis proyectos web y la única cosa que más me preocupa es el uso de la ActiveRecord de Rails. Me parece como el uso se recomienda fuertemente la ActiveRecord y escribir SQL recta parece mal visto. Después de buscar en varios proyectos en los que todavía no han visto uno que realmente utiliza SQL en el mismo.

No estoy vendido en el ActiveRecord sin embargo, en su mayoría, ya que requiere el aprendizaje de algo que no parece tan potente como SQL recta, por ejemplo ¿Hay una manera fácil de hacer una consulta anidada con un grupo y tener por cláusula con el ActiveRecord o voy a tener que pasar por el aro para hacerlo?

¿Alguien ha utilizado rieles sin el ActiveRecord? Si es así, ¿cuál fue su experiencia de hacerlo?

¿Fue útil?

Solución

Si no desea usar ActiveRecord que no tiene que definir y puede sql pura en sus modelos si así lo desea. find_by_sql ( 'seleccionar cualquier')

Otros consejos

Tres palabras:. Aquí sea dragones

Al ir fuera del camino de hacer las cosas "Camino Los Carriles", entonces se encontrará con enemigos de inimaginable poder y astucia. En un primer momento, se piensa "OH HO HO lo estoy haciendo mi manera, ¿verdad impresionante?". Entonces vas a crecer cansado. agotado , incluso. Tristemente, durante sus luchas, usted se verá en todo el fresco gema que utilizan Active Record y la maravilla por qué ha elegido para aventurarse por un camino tan lleno de pesimismo que haría Chuck Norris cagó en los pantalones.

Por favor, no se desvían de Active Record. Es sólo aquí para ayudarle, no obstaculizar. Si desea escribir sus propias consultas a continuación, hay un método find_by_sql, o un método Model.connection.execute aún más baja. Sin embargo, éstas sólo deben utilizarse, al igual que el armamento nuclear, en tiempos de necesidades excepcionalmente graves.

Si no desea utilizar Active Record en absoluto, entonces me animo a mirar a cualquiera DataMapper o Mongoid .

DataMapper proporciona gran parte de la misma funcionalidad que Active Record y algunos han sido conocidos por preferir la sintaxis. Como un poco de trivia: fue una de las primeras gemas para ser compatible con los carriles 3

.

Mongoid por el contrario es para bases de datos MongoDB, que algunas otras personas también de lujo.

Me pido una vez más:. No desviarse del camino trillado, para que no desea un golpeo mismo

Se podría utilizar DataMapper. Después de la escritura Rieles aplicaciones y herramientas más de un año Me - muy - recomendar el uso de ActiveRecord. Incluso si se utiliza de forma permanente Model.find_by_sql ( "propenso a errores, escrita a mano utilizando SQL campos que pueden cambiar con el tiempo") en lugar de Model.find_by_last_name ( "Smith")

Muchas personas inteligentes han pasado muchas horas trabajando en ActiveRecord y ARL. Le ruego que permite aprovechar su trabajo.

Tiene que haber una buena razón para que otras personas usen ORM en sus rieles de aplicaciones. :)

Especialmente con Rails 3, ORM son enchufables - puede utilizar simplemente DataMapper, o secuela en lugar de ActiveRecord

.

En cualquier caso, los modelos son importantes (y muy potente) parte de cualquier marco de MVC. Gran cantidad de lógica de negocio se coloca dentro de los modelos -. "Los modelos de grasa" es una especie de método recomendado para el desarrollo

Otro punto sobre el ORM existentes bueno es que en realidad permiten (pero no fomentan) que href="http://datamapper.org/docs/find#talking_directly_to_your_datastore" rel="nofollow"> SQL a mano - se puede escribir libremente a todas sus consultas a mano si te gusta. Pero incluso entonces, te recomiendo que deje sus consultas parametrizadas y dejar que la biblioteca interpolar sus parámetros (se hace eso en PHP así, ¿no es así)?

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top