ruby-on-rails ruby ruby-on-rails-4 ruby-2.4

ruby on rails - ¿Es posible ejecutar una aplicación Rails 4.2 en Ruby 2.4?



ruby-on-rails ruby-on-rails-4 (4)

Quiero probar una aplicación Rails 4.2 en Ruby 2.4.

Sin embargo, cuando intento hacerlo, recibo errores acerca de la versión 1.8.3 de json gem que no se pudo instalar.

Gem::Ext::BuildError: ERROR: Failed to build gem native extension. current directory: /Users/agrimm/.rbenv/versions/2.4.0-rc1/lib/ruby/gems/2.4.0/gems/json-1.8.3/ext/json/ext/generator /Users/agrimm/.rbenv/versions/2.4.0-rc1/bin/ruby -r ./siteconf20161223-91367-cql0ne.rb extconf.rb creating Makefile current directory: /Users/agrimm/.rbenv/versions/2.4.0-rc1/lib/ruby/gems/2.4.0/gems/json-1.8.3/ext/json/ext/generator make "DESTDIR=" clean current directory: /Users/agrimm/.rbenv/versions/2.4.0-rc1/lib/ruby/gems/2.4.0/gems/json-1.8.3/ext/json/ext/generator make "DESTDIR=" compiling generator.c generator.c:861:25: error: use of undeclared identifier ''rb_cFixnum'' } else if (klass == rb_cFixnum) { ^ generator.c:863:25: error: use of undeclared identifier ''rb_cBignum'' } else if (klass == rb_cBignum) { ^ 2 errors generated. make: *** [generator.o] Error 1 make failed, exit code 2 Gem files will remain installed in /Users/agrimm/.rbenv/versions/2.4.0-rc1/lib/ruby/gems/2.4.0/gems/json-1.8.3 for inspection. Results logged to /Users/agrimm/.rbenv/versions/2.4.0-rc1/lib/ruby/gems/2.4.0/extensions/x86_64-darwin-14/2.4.0-static/json-1.8.3/gem_make.out An error occurred while installing json (1.8.3), and Bundler cannot continue. Make sure that `gem install json -v ''1.8.3''` succeeds before bundling.

que asumo se debe a la unificación de Fixnum y Bignum en Integer.

Si agrego al Gemfile una restricción de que json tiene que ser la versión 2.0.0, entonces se queja de que Rails 4.2 requiere json ~> 1.7, lo que prohíbe 2.0.0.

¿Estoy fuera de suerte a menos que los mantenedores de Rails decidan hacer un cambio a una versión que no sea 5.x de Rails, o los mantenedores de la gema json decidan hacer una nueva versión que no sea 2.x de su gema?


Actualice los rieles a rieles-4.2.8. Esta es la primera versión 4.2.x que admite oficialmente ruby-2.4


Ahora es posible con rieles 4.2.8.rc1 (11 de febrero de 2017)


La gema json tiene una solución en la rama 1.8 . Esperamos que se publique como una gema pronto, pero mientras tanto, puedes usarlo directamente en tu Gemfile:

gem ''json'', github: ''flori/json'', branch: ''v1.8''

Rails también ha fusionado una solución para la rama 4-2-stable aproximadamente una semana después del último lanzamiento oficial de la gema 4.2.x Con suerte, también lanzarán una nueva gema pronto, pero esto podría ayudar en su Gemfile:

gem ''rails'', github: ''rails/rails'', branch: ''4-2-stable''

Finalmente, es posible que también arel cargar un arel desde una fuente de git:

gem ''arel'', github: ''rails/arel'', branch: ''6-0-stable''

Con esos tres cambios pude iniciar nuestra aplicación y consultar la base de datos, pero luego me topé con otros problemas relacionados con la unificación de enteros. Parece que este cambio va a causar algunas olas.


Parece que no será posible en este momento (aunque suene extraño).

Ver el registro de cambios para la gema JSON . Json 2.0.0 agrega compatibilidad para ruby ​​2.4, pero los rieles 4.2 restringen json a 1.x