Incompatibilidad de algunas versiones de rails con ruby 1.8.7


#1

Atención los que estéis pensando en actualizaros a Ubuntu 8.10, puesto
que viene con ruby 1.8.7, y rails presenta incompatibilidades con ruby
1.8.7 en versiones anteriores a la 2.1.0.

Este problema puede afectaros también a los que uséis macports, ya que
se instala ruby 1.8.7 por lo que he podido leer.

Aunque se supone que se soluciona con rails 2.1.0, aún tengo mis dudas
al respecto. Ante la duda, y viendo que se sigue desaconsejando ruby
1.8.7 desde la página de rails, creo que lo mejor es quedarse en 1.8.6
(e ir actualizando las apps rails que tengamos con versiones
antiguas).

Algo más de información y muchos comentarios en:

http://www.jaimeiniesta.com/2008/11/01/cuidado-con-ubuntu-810-viene-con-ruby-187/


Jaime I.


http://www.workingwithrails.com/person/6722-jaime-iniesta


#2

2008/11/2 Jaime I. removed_email_address@domain.invalid:

Atención los que estéis pensando en actualizaros a Ubuntu 8.10, puesto
que viene con ruby 1.8.7, y rails presenta incompatibilidades con ruby
1.8.7 en versiones anteriores a la 2.1.0.

Siempre puedes instalar Ruby desde las fuentes. Por lo que no habria
de ser un problema usar Ubuntu 8.10.

Este problema puede afectaros también a los que uséis macports, ya que
se instala ruby 1.8.7 por lo que he podido leer.

Efectivamente. Se ha de tener en cuenta de que Leopard ya trae ruby
instalado.

Aunque se supone que se soluciona con rails 2.1.0, aún tengo mis dudas
al respecto. Ante la duda, y viendo que se sigue desaconsejando ruby
1.8.7 desde la página de rails, creo que lo mejor es quedarse en 1.8.6
(e ir actualizando las apps rails que tengamos con versiones
antiguas).

Yo estoy utilizando 1.8.6p114, que es el que viene en Leopard, en su
momento estuve utilizando 1.8.7 instalado via MacPorts y el error que
me encontré era count on “HABTMs broken by Ruby 1.8.7 Array.count” [1]
que ya está arreglado en edge.

La idea es que si nuestras aplicaciones estan lo suficientemente
testeadas, usamos Rails 2.1.X o superior y los tests pasan con Ruby
1.8.7, entonces porque no usarla? :wink:

[1]
http://rails.lighthouseapp.com/projects/8994/tickets/831-count-on-habtms-broken-by-ruby-1-8-7-array-count


#3

2008/11/3 Francesc E. removed_email_address@domain.invalid:

2008/11/2 Jaime I. removed_email_address@domain.invalid:

Atención los que estéis pensando en actualizaros a Ubuntu 8.10, puesto
que viene con ruby 1.8.7, y rails presenta incompatibilidades con ruby
1.8.7 en versiones anteriores a la 2.1.0.

Siempre puedes instalar Ruby desde las fuentes. Por lo que no habria
de ser un problema usar Ubuntu 8.10.

Sip, un problema no es, pero un tanto coñazo tener que compilarse
además las librerías correspondientes. Con lo cómodo que es el
aptitude.

Yo estoy utilizando 1.8.6p114, que es el que viene en Leopard, en su
momento estuve utilizando 1.8.7 instalado via MacPorts y el error que
me encontré era count on “HABTMs broken by Ruby 1.8.7 Array.count” [1]
que ya está arreglado en edge.

La idea es que si nuestras aplicaciones estan lo suficientemente
testeadas, usamos Rails 2.1.X o superior y los tests pasan con Ruby
1.8.7, entonces porque no usarla? :wink:

Sip, pero si has de mantener aplicaciones con versiones de rails
anteriores, o estás en proceso de migrar a versiones superiores de
rails, es una jodienda esto de ruby 1.8.7. En todo caso, como todo iba
bien con 1.8.6, parece que más bien por el momento lo mejor evitar la
1.8.7.


Jaime I.
http://jaimeiniesta.com
http://www.workingwithrails.com/person/6722-jaime-iniesta


#4

2008/11/3 Jaime I. removed_email_address@domain.invalid:

Sip, un problema no es, pero un tanto coñazo tener que compilarse
además las librerías correspondientes. Con lo cómodo que es el
aptitude.

Sip, pero si has de mantener aplicaciones con versiones de rails
anteriores, o estás en proceso de migrar a versiones superiores de
rails, es una jodienda esto de ruby 1.8.7. En todo caso, como todo iba
bien con 1.8.6, parece que más bien por el momento lo mejor evitar la
1.8.7.

Siempre puedes mantener varias versiones de Ruby en tu maquina. Yo
utilizo stow para hacerlo. De esta manera puedo tener en una carpeta
varias versiones y las activo y desactivo segun las necesite.

/usr/local/stow/ruby-1.8.6
/usr/local/stow/ruby-1.8.7-p72
/usr/local/stow/ruby-1.9.1-preview1

http://fesplugas.tumblr.com/post/44805449/install-ruby-1-9-on-osx-using-stow


#5

Donde esté ruby enterprise… No se por que me da a mi, que la última
versión de ree siempre funcionará con rails.


#6

On Tue, Nov 4, 2008 at 10:10 AM, Guillermo Álvarez Fernández
removed_email_address@domain.invalid wrote:

Donde esté ruby enterprise… No se por que me da a mi, que la última
versión de ree siempre funcionará con rails.

En Leopard a mi no me funciona, al menos con passenger que es con lo
que lo estuve probando.


#7

2008/11/3 Francesc E. removed_email_address@domain.invalid:

1.8.7.

Siempre puedes mantener varias versiones de Ruby en tu maquina. Yo
utilizo stow para hacerlo. De esta manera puedo tener en una carpeta
varias versiones y las activo y desactivo segun las necesite.

Sip, mola stow.

Mi post va más bien encaminado a los incautos como yo que no se
esperaban este cambio de versión ni este buen incentivo para aprender
a usar stow - quizá no encaje bien en su planificación- :stuck_out_tongue:

/usr/local/stow/ruby-1.8.6
/usr/local/stow/ruby-1.8.7-p72
/usr/local/stow/ruby-1.9.1-preview1

http://fesplugas.tumblr.com/post/44805449/install-ruby-1-9-on-osx-using-stow

Interesante post. By the way a Google Reader no le mola tu feed, que
si no, te añadía.


Jaime I.
http://jaimeiniesta.com
http://www.workingwithrails.com/person/6722-jaime-iniesta


#8

Rescato este tema para volver a avisar de que ruby 1.8.7 puede darnos
problemas con rails. Pensaba que sólo era con versiones antiguas de
rails, pero he vuelto a ver fallos con una aplicación rails 2.2.2, que
va bien con ruby 1.8.6 pero falla con ruby 1.8.7.

En concreto el problema lo explica muy bien Will B. en su blog
[1]. El tema es que si se incluye un comentario de una línea en un
archivo .erb, ruby 1.8.7 ignora todo el código a continuación… pero
hasta el siguiente <%, comiéndose todo el HTML siguiente. Por ejemplo:

    <%(1..10).each do |id|#start of loop%>
  • <%="Number : #{id}"%>
  • <%end%>

Esto se renderizará bien con ruby 1.8.6, pero en ruby 1.8.7 se come el

  • y el
    .

    El problema no es de rails, sino de erb, pero aún así, no me parece
    bien que recomienden ruby 1.8.7 desde rubyonrails.org, hasta que se
    arregle este bug en erb…

    En mi caso me dí cuenta del bug por incluir comentarios # TODO en
    vistas. Sólo ocurre cuando el # y el %> están en la misma línea, así
    que si queréis meter comentarios en erb, hacedlo en varias líneas.

    [1] http://willbryant.net/software/2008/11/09/erb_comments_in_ruby_1.8.7

    2008/11/2 Jaime I. removed_email_address@domain.invalid:

    (e ir actualizando las apps rails que tengamos con versiones


    Jaime I.
    http://jaimeiniesta.com
    http://www.workingwithrails.com/person/6722-jaime-iniesta


  • #9

    2008/12/21 Jaime I. removed_email_address@domain.invalid:

    En mi caso me dí cuenta del bug por incluir comentarios # TODO en
    vistas. Sólo ocurre cuando el # y el %> están en la misma línea, así
    que si queréis meter comentarios en erb, hacedlo en varias líneas.

    Siempre puedes incluir los comentarios usando html no?


    #10

    2008/12/21 Francesc E. removed_email_address@domain.invalid:

    2008/12/21 Jaime I. removed_email_address@domain.invalid:

    En mi caso me dí cuenta del bug por incluir comentarios # TODO en
    vistas. Sólo ocurre cuando el # y el %> están en la misma línea, así
    que si queréis meter comentarios en erb, hacedlo en varias líneas.

    Siempre puedes incluir los comentarios usando html no?

    En principio sí, pero la gracia de meterlo con comentarios ruby es que
    después puedes correr “rake notes” y ver los TO-DOs pendientes. Si lo
    haces con un comentario html, no se lista en rake notes. Probad lo
    siguiente:

    <% # TODO: este si que sale en rake notes pero falla en ruby 1.8.7 %>
    <%

    TODO: curiosamente en varias lineas tampoco lo pilla en ruby 1.8.6

    %>

    En todo caso, esto nos distrae del tema que yo quería tratar, que
    es… ¿Hay o no hay un bug en erb de ruby 1.8.7 que hace que si pones
    un comentario en la misma línea que %> se coma todo hasta el siguiente
    <% ?

    Bug o feature? :stuck_out_tongue:


    Jaime I.
    http://jaimeiniesta.com
    http://www.workingwithrails.com/person/6722-jaime-iniesta


    #11

    2008/12/22 Xavier N. removed_email_address@domain.invalid:

    Y un comentario ERb?

    <%# TODO %>

    Hola Xavier, ahí parece estar la cosa… por lo visto el único formato
    válido para comentarios en ERb es sin espacio antes de la #. O sea <%#
    TODO %> funciona bien con ruby 1.8.7, pero <% # TODO %> peta.

    http://rails.lighthouseapp.com/projects/8994/tickets/1580-whitespace-bug-in-erb-comments-in-rails-222

    Bueno, habrá que tenerlo en cuenta entonces y no dejar espacios en
    blanco antes…


    Jaime I.
    http://jaimeiniesta.com
    http://www.workingwithrails.com/person/6722-jaime-iniesta


    #12

    2008/12/21 Jaime I. removed_email_address@domain.invalid:

    <% # TODO: este si que sale en rake notes pero falla en ruby 1.8.7 %>
    <%

    TODO: curiosamente en varias lineas tampoco lo pilla en ruby 1.8.6

    %>

    Y un comentario ERb?

    <%# TODO %>